2012-03-22 9 views
2

コードは、あなたがそこにある二重引用符で見るかもしれませんがPHPでセミコロンでmysqlコードを実行するには?

INSERT INTO `semicolon` VALUES ('1', 'a:1:{s:4:\"size\"';\s:2:\"24\";\}'); 

です。 - セミコロンとは、コードを分割するため、その実行記号です。

そうでないと構文エラーメッセージが表示されます。 - セミコロンはうまく動作します。 phpmyadminやnavicatなどのソフトウェアを使用する場合は、セミコロンを使用しても機能します。

質問はPHPファイル内で実行するように修正する方法ですか?

+4

? –

+2

、なぜあなたのテーブル名はセミコロン...ですか? –

+0

@ダゴンこのサイトのすべてのフリジンの答えは、「SQLインジェクションを脅かすことからユーザーデータを保護する」ためにmysql_real_escape_string()を使用すると言います。したがって、ユーザーデータがない場合や危険がない場合、誰もこの機能を心に留めません。 –

答えて

6

実際には'がコードを分割しています。 \'

INSERT INTO semicolon VALUES ('1', 'a:1:{s:4:\"size\"\';\s:2:\"24\";}'); 

'でそれをエスケープSQL内の文字列の区切り文字です。文字列が'で終わるSQLエンジンのもの。

+0

私はそれを試してみるよおい! – JackWill

+0

これはうまくいきません:... 1:{1:{s:4:\ "size \" \ ''セミコロン、それを取り除くと "うまくいく"。他のアイデア? – JackWill

+0

それは私のために働く。 –

8

それはあなたの単一引用符に、ないあなたのセミコロンによるものです:なぜあなたは(mysql_real_escape_stringのを使用していない)と、なぜあなたは正規化に対してシリアル化された配列を挿入する

INSERT INTO semicolon VALUES ('1', 'a:1:{s:4:\"size\"';\s:2:\"24\";}'); 
-----------------------------------------------------^ 
+0

これはmysqlエラーではなくPHPエラーであるのが好きです。 – JackWill

+0

@Jack PHPコードを投稿すると、mysqlの挿入だけができます – GoldenNewby

関連する問題