-3

この質問に答えてくれてありがとう、これは私のコードの一部であり、機能しません。

 $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', 
   'sssss@gmail.com', 
   '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 時間を無駄にしています....

4

4 に答える 4

2

一重引用符をバッククォートに置き換えます。

$sql_insert = "INSERT INTO `users`

これで問題は解決するはずです。

可能な限りバッククォートを使用してください。予約済みキーワード間の衝突を防ぐのに役立ちます (passwordたとえば)。

重要: 現在の形式のクエリは、SQL インジェクションに対して脆弱です。mysql_real_escape_string()を使用して入力をエスケープすることを検討してPDOくださいmysqli

于 2013-08-03T07:49:02.617 に答える
1

これは SQL 文字列リテラルです。

'users'

これはテーブル名です:

users

これは (MySQL) 引用符で囲まれたテーブル名です:

`users`

SQL 標準が必要"users"であり、さまざまな Microsoft データベースが必要です[users]

文字列に INSERT することはできません。それについて考えることさえできません。SQL は次のようになります。

$sql_insert = "INSERT INTO `users` ...
于 2013-08-03T07:47:20.190 に答える
0

「ユーザー」を次のように置き換えてみてください

     `user` 

. MySql は通常の

于 2013-08-03T07:52:17.867 に答える
0

'users' をusersプラスに変更し、最後から 2 番目のフィールド$data[cf]は alphanumeric( tsssss6i819s) を渡しますが、数値のみを割り当てます。に変更し,'$data[cf]'ます。たぶん、フィールドaziendaもチェックしてくださいpiva

于 2013-08-03T07:54:28.667 に答える