-2

私は2つのphp配列を持っていjson_encodeます$mysqli->real_escape_string. これで、json_encode 後のこれら 2 つの配列の出力は次のようになります。

{\"arg1\":\"char*\",\"arg2\":\"char*\"}{\"arg1\":\"abc\",\"arg2\":\"bca\"}

次に、クエリを使用してこれを mysql に挿入します。しかし、次のエラーが発生します。

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 '\"arg1\":\"char*\",\"arg2\":\"char*\"}, {\"arg1\":\"abc\",\"arg2\":\"bca\"})' at line 1

このjsonをmysqlに入れる方法は何ですか?

Mysql クエリ

"UPDATE test_info SET java_auto_frame=$frame_auto, java_manual_frame=$frame_manual, java_testcase=$testcases, param_types=$param_types, param_examples=$param_examples WHERE qid=$qid"

ここで、$param_types は最初の json でエンコードされた配列で、$param_examples は 2 番目の配列です。

4

2 に答える 2

2

このようにクエリを書きます

"UPDATE test_info SET java_auto_frame='$frame_auto', java_manual_frame='$frame_manual', java_testcase='$testcases', param_types='$param_types', param_examples='$param_examples' WHERE qid='$qid'"
于 2013-08-06T07:45:56.340 に答える
1

PDO の準備済みステートメント ( http://php.net/manual/en/book.pdo.php ) を使用します。このようなもの:

$dbh = new PDO("mysql:host=localhost;dbname=database;","root","");
$sql = "UPDATE test_info SET java_auto_frame=:frame_auto, java_manual_frame=:frame_manual, java_testcase=:testcases, param_types=:param_types, param_examples=:param_examples WHERE qid=:qid";
$sth = $dbh->prepare($sql);
$sth->execute(array(
    'frame_auto' => $frame_auto,
    'frame_manual' => $frame_manual,
    'testcases' => $testcases,
    'param_types' => $param_types,
    'param_examples' => $param_examples,
    'qid' => $qid
));
于 2013-08-06T07:54:48.467 に答える