我无法找到原因错误1064 | MySQL的

时间:2016-04-30 23:13:17

标签: php mysql mysql-error-1064

我写了SQL命令。 MySQL说第36行出现错误#1064(第36行是空的空格/分隔符)。我知道基本的MySQL,但我找不到原因。

$ ./manage.py livereload

也许错误在这里? $ _hsync_usr是表名。

// TRENUTNI MOD REGISTRACIJE
$_hsync_rezultat = $_hsync_konekcija->query("SELECT Registracija FROM $_hsync_srv");
$_hsync_podatci = $_hsync_rezultat->fetch_assoc();
$_hsync_registracija = $_hsync_podatci["Registracija"];
// LINE 36
// NOVI ID KORISNIKA
$_hsync_rezultat = $_hsync_konekcija->query("SELECT Korisnika FROM $_hsync_srv");
$_hsync_podatci = $_hsync_rezultat->fetch_assoc();
$_hsync_id = $_hsync_podatci["Korisnika"] + 1;
$_hsync_od = 'From: haswell.samp@hotmail.com' . "\r\n";

我检查一下。我有点困惑。

2 个答案:

答案 0 :(得分:1)

与普遍看法相反:

hex不是MySQL保留字。

HEX()是用于十六进制文字的函数

其他参考http://dev.mysql.com/doc/refman/5.7/en/string-functions.html
"返回十进制或字符串值的十六进制表示"

您可以使用该单词,但如果需要,则需要将其包含在刻度

旁注:但在这种情况下它不是因为它不是用作函数。

例如:

RastDlaka,
`hEx`) VALUES (
'$_hsync_ime',

另外,如果您有任何未引用的字符串值,那么您需要引用它们,就像对其他字符串一样。

即:

$_hsync_rastdlaka,
'$_hsync_hEx')");

此外,您目前的代码向SQL injection开放。使用mysqli with prepared statementsPDOprepared statements

编辑:至于真正的问题:

  

大声笑,问题是在输入字段中,我使用id而不是单选按钮的值。谢谢!我会检查准备好的声明的链接。它看起来有点复杂。 - SilvioCro"

OP注意:请发布与问题相关的所有代码,它将遗漏所有潜在的猜测,其他人(包括我自己)将能够(或至少帮助)找到完整的解决方案。

error reporting添加到文件的顶部,这有助于查找错误。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// Then the rest of your code

旁注:只应在暂存时进行显示错误,而不是生产。

同时检查查询错误:

它会在开发期间帮助您var_dump()并查看您的HTML源代码(以及使用JS / Ajax时的控制台)。

  • 请记住; 我们必须使用更多更少时间来提供解决方案

答案 1 :(得分:0)

hEx是MySQL中的保留字。所以它给出了错误#1064,因为查询不能包含保留的作品。