2013-08-03 87 views
-2

Thankyou提前回答了這個問題,這是我的代碼的一部分,它不起作用。SQL語法錯誤,找不到原因

$sql_insert = "INSERT INTO 'users' 
(
`ragionesociale`, 
`user_name`, 
`user_email`, 
`pwd`, 
`nome`, 
`cognome`, 
`tel`, 
`tel2`, 
`website`, 
`date`, 
`users_ip`, 
`activation_code`, 
`piva`, 
`cf`, 
`azienda`) 

VALUES 

(
'$data[ragionesociale]', 
'$data[user_name]', 
      '$user_email', 
      '$sha1pass', 
'$data[nome]', 
'$data[cognome]', 
'$data[tel]', 
'$data[tel2]', 


'$data[website]' , 
now(), 
'$user_ip', 
'$activ_code', 

$data[piva],$data[cf], 
$data[azienda])";mysql_query($sql_insert) or die("Insertion Failed:<br>$sql_insert<br>" . mysql_error()); 

,這是給定的結果:

INSERT INTO 'users' ( 
    `ragionesociale`, 
    `user_name`, 
    `user_email`, 
    `pwd`, 
    `nome`, 
    `cognome`, 
    `tel`, 
    `tel2`, 
    `website`, 
    `date`, 
    `users_ip`, 
    `activation_code`, 
    `piva`, 
    `cf`, 
    `azienda` 
) 
VALUES ( 
    'La Fabbrica dei Giochi', 
    'uuuuuuu', 
    '[email protected]', 
    'e258c8aac30eba143e1f3sssss6dc1cdc4d58ff1095', 
    'pietro', 
    'rossi', 
    '234234234', 
    '345.4346865', 
    'www.ssss.it' , 
    now(), 
    '212.124.171.131', 
    '9962', 
    2323232, 
    tsssss6i819s, 
    1 ) 

錯誤消息:

You have an error in your SQL syntax; check the manual that corresponds 
to your MySQL server version for the right syntax to use near ''users' 
(`ragionesociale`, `user_name`, `user_email`, `pwd`, `nome`, `cogno' at line 1 

我找不到什麼是錯在此代碼,我在浪費2小時... 。

+3

在'users'上使用反引號而不是單引號,就像您爲列操作一樣。 – vee

回答

1

這是一個SQL字符串文字:

'users' 

這是一個表名:

users 

這是一個(MySQL的)報價表名:

`users` 

SQL標準希望"users"和各種微軟的數據庫會想[users]

你不能插入字符串,你甚至不能考慮它。你的SQL應該看起來更像是這樣的:

$sql_insert = "INSERT INTO `users` ... 
2

與反引號替換單引號:

$sql_insert = "INSERT INTO `users` 

這應該解決這個問題。

儘可能地使用反引號。它可以幫助您防止保留關鍵字之間的衝突(例如password)。

重要提示:您目前的表單查詢容易受到SQL注入的影響。考慮使用mysql_real_escape_string()或甚至更好的轉義使用PDOmysqli轉義輸入。

0

嘗試用

 `user` 

替換 '用戶'。 MySql無法識別通常的

0

我會將'用戶'更改爲users加上第二個最後一個字段$data[cf]傳遞字母數字(tsssss6i819s),但只分配數字。將其更改爲,'$data[cf]'。也許檢查字段aziendapiva以及。