2

サーバーテーブルに配列データを挿入するための 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コードを強化する方法を教えてください。

4

2 に答える 2

1

svalueid = "svalueid" : { "0" : 1, "1" : 2 }これはおそらくあなたの問題です。

試す

$fixedValue = mysql_real_escape_string($value);

$result = mysql_query("INSERT INTO users(userid, svalueid) VALUES('$userid', '$fixedValue')");

またID、AUTO_INCREMENT フィールドを INSERT クエリに追加する必要がない場合は、暗黙的に指定され、自動的にインクリメントおよび挿入されます。

このロジックをすべての INSERTS と UPDATE に適用します。

また、各 mysql_query() の後にエラー処理コードが必要であり、少なくとも mysql_erno() および mysql_error() を表示する必要があります。それは、エラーが発生したときにエラーを解消します。

于 2013-08-19T13:48:37.527 に答える