2016-05-11 13 views
1

何らかの理由で、このクエリがデータベースに送信されていませんが、エラーはありません。MySQLクエリがデータベースに送信されない、エラーが発生しない

$listingdesc2 = "'test test test','test test test'"; 
$category = "apple, banana"; 
$addlisting = mysql_query("INSERT INTO `directory` (". $category .") VALUES (". $listingdesc2 .")");  

テーブル名と列名が正しいことを確認しました。私の質問に何か問題はありますか?

$listingdesc2と何か関係があり、コンマで区切られたクエリで変数を使用しようとしています。

リンゴは、データベース内の「テストテストテスト」を返す必要があります バナナは、データベース内の「テストテストテスト」を返す必要があります

クリス、ここに私のコードの完全なスニペットは、だ上記のは本当に基本的な例でした。次のように

$listingdesc = mysql_real_escape_string($_POST['listingdesc']); 
$category = $_POST['category']; //this is an array from a multiple selection checklist 
$numcat = count($category); 
$category = implode(", ",$category); 
$listingdesc1 = "'$listingdesc'"; 
$a = array_fill(0, $numcat, $listingdesc1); 
$listingdesc2 = implode(',', $a); 

$addlisting = mysql_query("INSERT INTO `directory` (". $category .") VALUES (". $listingdesc2 .")");  

は、それから私は、彼らがクエリで使用される値をエコー:SQLインジェクションを防ぐためだけにstring mysql_escape_string (string $unescaped_string)

$listingdesc2 = 'test test test','test test test'

$category = 'apple, banana'

+0

FYIの値のカンマ(、)はmysqlクエリが正常に実行されていません。 –

+0

どうすればこの問題を回避できますか? –

+0

カンマ文字をエスケープするだけで問題ありません。 –

答えて

0

あなたがによって、特別な文字をエスケープすることができますあなたがPDOライブラリをPHPから、またはmysqlimysqlの代わりに使用すると思います。このライブラリはで廃止されていますとなり、安定版PHP is 5.6となりました。

+0

カンマをエスケープする必要があるのはなぜですか?現在のクエリでエスケープする必要があるものは何もありません。 – chris85

+0

ええええええええええええええええええええええええええと、私はあなたの投稿を編集します、ありがとう –

関連する問題