Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.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
CakePHP 3 find(),每行的顺序为_Php_Sql_Cakephp_Cakephp 3.0 - Fatal编程技术网

CakePHP 3 find(),每行的顺序为

CakePHP 3 find(),每行的顺序为,php,sql,cakephp,cakephp-3.0,Php,Sql,Cakephp,Cakephp 3.0,伙计,我不知道为什么这不起作用,我在逐字逐句地听曼努埃尔的话 我有一个ProductStyles表,它有一个order列。假设我有5行。我删除了3号。我希望找到与产品id匹配的所有行,并逐步替换订单,遍历其中的每一行 Productstyle Table id - product_id - order 我的第一步是按顺序获取所有与产品ID匹配的行,这样我就可以进行foreach,但我会不断地得到SQL错误。老实说,除了基本的select之外,我对SQL不太了解 $query = $this-&

伙计,我不知道为什么这不起作用,我在逐字逐句地听曼努埃尔的话

我有一个ProductStyles表,它有一个order列。假设我有5行。我删除了3号。我希望找到与产品id匹配的所有行,并逐步替换订单,遍历其中的每一行

Productstyle Table
id - product_id - order
我的第一步是按顺序获取所有与产品ID匹配的行,这样我就可以进行foreach,但我会不断地得到SQL错误。老实说,除了基本的select之外,我对SQL不太了解

$query = $this->ProductStyles->find()
                ->where(['product_id'=> 1 ])
                ->order(['order' => 'ASC'])
                ;


//debug($query);
//debug( $query->all() ); //this throws an error
错误消息:

错误:SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“order ASC”附近使用的正确语法

SQL:


order
是一个保留的单词,不允许以不带引号(在本例中为非倒勾)的方式使用,它需要以
`order`

我建议更改列名,这是最简单且不影响性能的修复方法。另一个选项是启用自动标识符引用,但这将影响性能,并且不能应用于任何地方,请参阅


顺序
是一个保留的单词,不允许以不带引号(在本例中为非倒勾)的方式使用,它需要以
`order`
的形式使用

我建议更改列名,这是最简单且不影响性能的修复方法。另一个选项是启用自动标识符引用,但这将影响性能,并且不能应用于任何地方,请参阅


order
是SQL中的保留关键字,因此,如果要用作列名,则需要使用引号,如下所示:

SELECT * FROM table ORDER BY `order` ASC
正如您在错误中看到的,没有引用

也许您必须使用
$this->Model->query()
并手动编写查询

另一个解决方案是将“订单”列更改为另一个名称


希望这有帮助。

order
是SQL中的保留关键字,因此,如果要用作列名,需要使用引号,如下所示:

SELECT * FROM table ORDER BY `order` ASC
正如您在错误中看到的,没有引用

也许您必须使用
$this->Model->query()
并手动编写查询

另一个解决方案是将“订单”列更改为另一个名称


希望这有帮助。

收到错误时,请始终显示准确的错误消息,并包括可能的堆栈跟踪和上下文信息!感谢NDM对我的解救:)我附加了错误消息堆栈跟踪将是很多粘贴,希望错误消息是足够的当收到错误时,请始终显示准确的错误消息,并包括可能的堆栈跟踪和上下文信息!感谢NDM对我的解救:)我附加了错误消息堆栈跟踪将有很多粘贴,希望错误消息是足够的