Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数组到字符串的转换[CORE\Cake\Model\Datasource\DboSource.php,第2094行]_Php_Cakephp - Fatal编程技术网

数组到字符串的转换[CORE\Cake\Model\Datasource\DboSource.php,第2094行]

数组到字符串的转换[CORE\Cake\Model\Datasource\DboSource.php,第2094行],php,cakephp,Php,Cakephp,我有一个评论和评级页面。查看产品后,客户可以进行审查和评级。 我的controller/review.ctp代码如下: public function review($prod_id = NULL) { if($this->request->is('post')) { $this->Product->updateAll(array( 'Product.rating' => "'".$this->request-

我有一个评论和评级页面。查看产品后,客户可以进行审查和评级。 我的controller/review.ctp代码如下:

 public function review($prod_id = NULL)
{
    if($this->request->is('post')) {
        $this->Product->updateAll(array(
            'Product.rating' => "'".$this->request->data['Product']['rating']."'",
            'Product.review' => "'".$this->request->data['Product']['review']."'",
            array('conditions'=>array(
                'prod_id' => $prod_id))
        ));
        $this->Session->setFlash("Thanks for your feedback !!!");
    }
}
但在执行上述代码时,我得到:

Notice (8): Array to string conversion    [CORE\Cake\Model\Datasource\DboSource.php, line 2094]

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Array' in 'field list'

SQL Query: UPDATE `cakephp`.`products` AS `Product` SET `Product`.`rating` = '4', `Product`.`review` = 'abcd', `Product`.`id` = Array WHERE 1 = 1
我不明白问题出在哪里。 任何帮助都将不胜感激。
感谢期待

您遇到的查询不正确,请尝试以下操作:-

$this->Product->updateAll(array('Product.rating' => "'".$this->request->data['Product']['rating']."'",'Product.review' => "'".$this->request->data['Product']['review']."'"),array('conditions'=>array('Pr‌​oduct.id' => $prod_id)));
注意:-
第一个数组的位置错误。它必须在
条件
数组之前关闭


condition
数组中,它将是
Product.id
而不是
prod\u id

查询必须是
$this->Product->updateAll(数组($this->request->data['Product']['rating'].'”,'Product.review'=>“,$this->request->data['Product']['review'.'”),数组($conditions'=>array('Product.id'=>$prod'>)))
你们两个都应该快速查看一下文档:请不要在用户输入周围手动添加引号,而是使用数据库驱动程序值引用机制@anantkumarsingh
updateAll
不会自动转义数据。一定要逃避现实,否则你就会向sql注入敞开大门。