我写了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";
我检查一下。我有点困惑。
答案 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 statements或PDO与prepared 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,因为查询不能包含保留的作品。