Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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
Php “key”在MySqli中是保留字吗?我犯了个错误_Php_Mysql_Mysqli - Fatal编程技术网

Php “key”在MySqli中是保留字吗?我犯了个错误

Php “key”在MySqli中是保留字吗?我犯了个错误,php,mysql,mysqli,Php,Mysql,Mysqli,我刚刚进入MySql/MySqli,我使用的是预先准备好的语句。 我的整个脚本运行良好,除了这一行: 如果$stmt=$con->prepareSELECT bandHash、userHash、userPassHash,请键入FROM account\u active WHERE key=?{ 我通过手动跟踪它,然后运行mysqli_error$resource函数发现了这一行,并得到了这样的结果:您的SQL语法中有一个错误;请查看与您的MySQL服务器版本对应的手册,以获得在第1行的“key=

我刚刚进入MySql/MySqli,我使用的是预先准备好的语句。 我的整个脚本运行良好,除了这一行:

如果$stmt=$con->prepareSELECT bandHash、userHash、userPassHash,请键入FROM account\u active WHERE key=?{

我通过手动跟踪它,然后运行mysqli_error$resource函数发现了这一行,并得到了这样的结果:您的SQL语法中有一个错误;请查看与您的MySQL服务器版本对应的手册,以获得在第1行的“key=?”附近使用的正确语法

请不要担心上面写的是第1行,这只是因为它是如何执行的,实际上是第280行

所以我想知道的是,因为我已经在使用像这样的语句了,关键字是一个我不能使用的保留字——或者我需要在别处寻找我的错误吗

一个简单的是或否答案就足够了,谢谢!

<>我会考虑重命名它以避免使用到处引用的名称

`key`

<>我会考虑重命名它以避免使用到处引用的名称

`key`

我不知道你为什么不能自己查这个,但是

您应该在字段名中使用反勾号,以避免担心这一点

SELECT `bandHash`, `userHash`, `userPassHash`, `type`
  FROM `account_active`
 WHERE `key` = ?

这不仅解决了您的问题,而且感觉更加明确,正如您所看到的,这有助于语法突出显示。

我不知道您为什么不能自己查找这个,但是

您应该在字段名中使用反勾号,以避免担心这一点

SELECT `bandHash`, `userHash`, `userPassHash`, `type`
  FROM `account_active`
 WHERE `key` = ?

这不仅解决了您的问题,而且感觉更加明确,正如您所看到的,这有助于语法突出显示。

实际上,这是因为它是SQL查询的第1行。为了防止将来的mysql版本出现意外情况,您可以习惯于引用您的所有列名,而不仅仅是那些可能是保留名称的列名,例如用于统一外观的类型。@TomalakGeret'kal这不是问题,因为在关键字周围使用反勾号已经解决了它。如果它真的是第1行,那么我不知道如何设置$con变量。@Jordanmore:嗯?在我写接受的答案时,我知道问题出在哪里。我说的是你的断言,它说的是第1行,那只是因为它是如何执行的ted,这实际上是第280行。这是MySQL的错误,所以这是关于你给MySQL的输入的第1行——反正只有一行。MySQL不知道原始的PHP上下文。@Tomalak Geret'kal啊,对不起,我没有检查我接受的答案的名称:哦,我没有正确理解你的评论,我觉得,你这意味着它实际上是第1行而不是第240行,我还以为你认为它是PHP的第一行。我的错。事实上,这是因为它是SQL查询的第1行。为了防止将来的mysql版本出现意外情况,你可以习惯于引用你所有的列名,而不仅仅是那些可能是保留名称的列名,比如用于统一外观的类型。@Tomalak Geret'kal这不是问题,因为在关键字周围使用反勾号已经解决了它。如果它真的是第1行,那么我不知道如何设置$con变量。@Jordanmore:嗯?在我写接受的答案时,我知道问题是什么。我说的是你的断言,它说的是第1行,这只是因为它是如何执行的,它实际上是第280行。这是一个MySQL错误,所以它指的是您给MySQL的输入的第1行-反正只有一行长。MySQL不知道原始PHP上下文。@Tomalak Geret'kal啊,对不起-我没有检查我接受的答案的名称:哦,我没有正确理解您的评论,我觉得,你是我吗ant说它实际上是第1行而不是第240行,我还以为你认为它是PHP的第一行。我的错。