2016-04-30 81 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