2016-11-19 6 views
-4

以下のコードを実行しようとすると、エラーが表示されます。
無効なクエリ:SQL構文にエラーがあります。ライン1
Mysqlでデータを更新できません

$result = mysql_query("REPLACE INTO templates (id,title,subtitle,background,image,image2,image3,image4,image5,image6,createdby) VALUES ('$id','$title','$subtitle','$background','$image','$image2','$image3','$image4,'$image5','$image6','$fbuid')"); 
if (!$result) { 
    die('Invalid query: ' . mysql_error()); 
} 


に「)「「」」、「「」」の近くに使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認してくださいしかし、以下のコードは、完全に動作します罰金:

mysql_query("REPLACE INTO Users (fbuid,username,email,token) VALUES ('$fbuid', '$name', '$email', '$token')"); 


は何の問題になることができますか?

+0

あなたがデータ http://stackoverflow.com/questions/10177208/update-a-column-value-replacing-part-of-a-string ・ホープこのヘルプあなたを更新するために、以前の記事を参照することができます。 –

+2

私はこれを何度も尋ねてきましたが、おそらくあなたは以下にコメントすることができます。なぜあなたは 'mysql _ *()'関数を使っていますか? – Xorifelse

+0

'$ id'がプライマリキーであれば、それを挿入する必要はありません。このmysql_query(" REPLACE INTO templates(id、title、subtitle、background、image、image2、image3、image4、image5 $ image2、$ image2、$ image3、$ image4、$ image5、image6、createdby)VALUES( ''、 '$ title'、 '$ subtitle'、 '$ background'、 '$ image'、 ' $ image6 '、' $ fbuid ') ");' – EaBangalore

答えて

0

実際には$image4の後に'記号がありませんでした...問題が解決しました。

+0

*あなたがやったように、ユーザーデータをSQL文にあてにしないでください。 $ titleがユーザーから来て、アポストロフィを含んでいる場合、$ titleはSQLから抜け出すことができます。データベース全体を削除する可能性があります。プレースホルダの使い方についてはPHPのマニュアルを読んでください。 http://php.net/manual/en/mysqli.quickstart.prepared-statements.php(またはPDOバージョン)を使用するか、必要な場合はmysql_real_escape_stringを使用します。 –

関連する問題