サーバーテーブルに配列データを挿入するための PHP ファイルを作成したいと考えています。複数の値が選択されているため、配列を取得し、iphone アプリケーションから jsonstring を作成して、PHP ファイルに値を投稿し、サーバー テーブルにデータを挿入しました。何が間違っているのかわかりません。値がサーバー DB PHP/MYSQl に挿入されません。
エラー メッセージ = "エラーが発生しました。" が表示されます。
また、挿入したい同じ配列(json_encodeとdecodeも使用)で変数を宣言しようとしましたが、同じエラーが表示されます。
<?php
$response = array();
if (isset($_REQUEST['userid']) && isset($_REQUEST['svalueid'])) {
$userid = $_REQUEST['userid'];
$svalueid = json_decode($_REQUEST['svalueid']);
include 'connect.php';
$db = new DB_CONNECT();
$result = mysql_query("SELECT userid, svalueid FROM users WHERE userid = '$userid'");
if (mysql_num_rows($result) > 0) {
$result = mysql_query("DELETE FROM uses WHERE userid = '$userid'");
foreach($svalueid as $value) {
$result = mysql_query("INSERT INTO users(id, userid, svalueid) VALUES('','$userid', '$value')");
}
} else {
foreach($svalueid as $value) {
$result = mysql_query("INSERT INTO users(id, userid, svalueid) VALUES('','$userid', '$value')");
}
}
if ($result) {
$response["success"] = 1;
$response["message"] = "successful.";
echo json_encode($response);
} else {
$response["success"] = 0;
$response["message"] = "An error occurred.";
echo json_encode($response);
}
} else {
$response["success"] = 0;
$response["message"] = "Field's missing";
echo json_encode($response);
}
?>
正しい文字列を取得しているかどうかを確認するために、このphpファイルを使用しました..
<?php
$response = array();
$userid = $_REQUEST['userid'];
$test="'svalueid' : [
'0' : 1,
'1' : 2
]";
$xyz = json_encode($test);
$vb = json_decode($test);
$pbk=array("1"=>"abc","2"=>"cck");
$pk=json_encode($pbk);
$ck=json_decode($pk);
include 'db_connect.php';
$db = new DB_CONNECT();
echo "<pre>";
print_r($_REQUEST['svalueid']);
echo "<br>";
print_r($vb);
echo "<br>";
print_r($ck);
echo "<br>";
echo "hi";die;
if ($result) {
$response["success"] = 1;
$response["message"] = "Success.";
echo json_encode($response);
} else {
$response["success"] = 0;
$response["message"] = "An error occurred.";
echo json_encode($response);
}
} else {
$response["success"] = 0;
$response["message"] = "Value is missing";
echo json_encode($response);
}
?>
コンソールのアプリケーションで取得した応答は、次のことを示しています。
response: <pre>{
\"sidselected\" : {
\"0\" : 1,
\"1\" : 2
}
}<br><br>stdClass Object
(
[1] => abc
[2] => cck
)
<br>hi
jsonString の userid = 1 および svalueid = "svalueid" : { "0" : 1, "1" : 2 } にある値は次のようになります
json string going on server is {
"svalueid" : {
"0" : 1,
"1" : 2
}
}
DB テーブルに値 1 と 2 を挿入できません。
svalueid の形式は正しいですか? 私のphpコードを強化する方法を教えてください。