0

私はこの次のSQLコードを持っています:

$sql = "INSERT INTO data (Artist, Name) VALUES ('TF2', 'you're right behind me')";

コード自体は正常に見えますが、何らかの理由で mysql が保存を許可しません。次のエラーが表示されます。

"#1064 - 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 're right behind me')' at line 1"

私が問題を知っているのは、「正しい」という単語がmysqlで予約されているためですが、それを保存する必要があるため、コードはどのように見えるでしょうか。すべての助けに感謝します

4

3 に答える 3

0

あなたの問題は'、仕事にがあるためですyou're。したがって、文字列は文の早い段階で終了しています。代わりに使用you\'reして文字をエスケープします'

$sql = "INSERT INTO data ('Artist', 'Name') VALUES ('TF2', 'you\'re right behind me')";
于 2013-07-23T02:49:10.160 に答える
0

@Fred と @JunM が既にコメントしているように、2 つの問題があります。1 つ目は、Name が予約語であることです。2 つ目は、一重引用符で囲まれた文字列内に一重引用符があることです。SQL を次のように変更します。

$sql = "INSERT INTO data (`Artist`, `Name`) VALUES ('TF2', 'you\'re right behind me')";
于 2013-07-23T02:50:47.260 に答える
0

MySQL の経験は限られていますが、SQL Server を幅広く使用しています。私には、問題は「あなたは私の後ろにいる」で使用されるアポストロフィにあるようです。SQL サーバーでは、二重アポストロフィを使用する必要があるため、SQL 命令は次のようになります (you''re の二重アポストロフィに注意してください)。

$sql = "INSERT INTO data (Artist, Name) VALUES ('TF2', 'you''re right behind me')"; 

お役に立てれば。よろしく

于 2013-07-23T02:51:02.360 に答える