0

我尝试按如下方式运行以下查询。

 $query = "DELETE FROM `ski_chalet_price` WHERE 1";    

 $conn = Doctrine_Manager::getInstance()->connection();
 $stmt = $conn->prepare($query);
 $stmt->execute();

但它会引发以下警告。

Warning: Invalid argument supplied for foreach() in /home/dinuka/workspace/symfony/lib/plugins/sfDoctrinePlugin/lib/database/sfDoctrineConnectionProfiler.class.php on line 196

Warning: join(): Invalid arguments passed in /home/dinuka/workspace/symfony/lib/plugins/sfDoctrinePlugin/lib/database/sfDoctrineConnectionProfiler.class.php on line 141

这是我要运行的查询。

INSERT INTO ski_chalet_price 
(ski_chalet_id, month, d_19,d_20,d_21,d_22,d_23,d_24,d_25,created_at) VALUES
(44,'2013-04-01',10,10,10,10,10,10,10,'2013-04-19 13:27:26') 
ON DUPLICATE KEY UPDATE 
ski_chalet_id = 44, month = '2013-04-01',d_19 = 10,d_20 = 10,d_21 = 10,d_22 = 10,d_23 = 10,d_24 = 10,d_25 = 10, updated_at = '2013-04-19 13:27:26' ;

这不取决于我的查询。什么问题?

4

1 回答 1

1

我检查了代码,sfDoctrineConnectionProfiler.class.php发现execute();需要一组空参数(即一个空数组)才能不抱怨。

所以:

$stmt->execute();

应该:

$stmt->execute(array());

请注意,错误中的“加入”一词具有误导性。它不是指 SQL 连接,而是指 PHP 的原生 join() 函数,它是 implode() 的别名。

于 2014-08-22T17:19:52.670 回答