2016-04-30 173 views
-1

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

// 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: [email protected]' . "\r\n"; 

可能是错误在这里? $ _hsync_usr是表名。

 $_hsync_konekcija->query("INSERT INTO $_hsync_usr (
    Ime, 
    ID, 
    Registriran, 
    Zaporka, 
    ZaporkaMD5, 
    IP, 
    GPCI, 
    Mail, 
    Spol, 
    Godine, 
    Skin, 
    MailNotf, 
    Datum, 
    Vrijeme, 
    Visina, 
    OstalaMasa, 
    MisicnaMasa, 
    MasaSala, 
    Zeludac, 
    Metabolizam, 
    PotrebaH2O, 
    Opijanje, 
    Drogiranje, 
    Udarac, 
    RastDlaka, 
    hEx) VALUES (
    '$_hsync_ime', 
    $_hsync_id, 
    $_hsync_reg, 
    'nista', 
    '$_hsync_zaporka_hash', 
    'nista', 
    'nista', 
    '$_hsync_mail', 
    $_hsync_spol, 
    $_hsync_godine, 
    $_hsync_skin, 
    $_hsync_mail_notf, 
    '$_hsync_datum', 
    '$_hsync_vrijeme', 
    $_hsync_visina, 
    $_hsync_omasa, 
    $_hsync_mmasa, 
    $_hsync_msala, 
    $_hsync_zeludac, 
    $_hsync_metabolizam, 
    $_hsync_potrebah2o, 
    $_hsync_opijanje, 
    $_hsync_drogiranje, 
    $_hsync_udarac, 
    $_hsync_rastdlaka, 
    $_hsync_hEx)"); 

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

+0

'$ _hsync_srv'是什么,一个字符串?你的问题不清楚。你是否谷歌那个错误?太多可能的原因。 –

+0

'$ _hsync_srv = “_HRP_SRV”' 这是表名。 – SilvioCro

+2

http://stackoverflow.com/questions/23515347/how-can-i-fix-mysql-error-1064 –

回答

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到您的文件(S),这将有助于找到错误的顶部

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

// Then the rest of your code 

旁注:。显示错误应该只在分期完成,并且从不生产

同时检查是否存在错误对查询:

这将帮助你在开发过程中,这将var_dump(),看着你的HTML源(和您的控制台,如果使用JS /阿贾克斯)。

  • 请记住;我们有工作,花费的时间提供解决方案。
+0

错误还在这里 - http://i.imgur.com/pyc71bn.png 这是Godine和MasaSala之间。 – SilvioCro

+0

我回声整个查询,'$ _hsync_spol'需要是0或1,但它是(开启)。为什么? 这里的核心为'$ _hsync_spol' - '$ _hsync_spol = $ _ POST [ '_ hsync_spol'];' HTML部分'

\t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t
\t \t \t \t \t \t \t \t' – SilvioCro

+0

大声笑,问题是在输入字段,我使用id代替单选按钮的值。谢谢!我会检查链接的准备状态。它看起来有点复杂。 – SilvioCro

0

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

+0

谢谢!所以我需要把hEx放入[和]? – SilvioCro

+0

https://dev.mysql.com/doc/refman/5.5/en/keywords.html我没有在这里看到'hex'作为MySQL保留字。你为什么接受这个答案? @SilvioCro'HEX()'是用于十六进制字面https://dev.mysql.com/doc/refman/5.7/en/hexadecimal-literals.html不是保留字的功能。其他参考http://dev.mysql.com/doc/refman/5.7/en/string-functions.html *“返回十进制或字符串值的十六进制表示”* –

+0

我不知道这是一个函数。谢谢! – SilvioCro