0

したがって、データを JSON としてエコーするこの PHP ファイルがあります。

これはPHPです:

// Recieved the user id:
$userId = $_POST['userId'];

// Create connection
$con = mysqli_connect("123.com", "123", "123", "123", "1234");


// Check connection
if (mysqli_connect_errno($con)) {
    echo "Failed to connect to database " . mysqli_connect_error();
}

// Work with the database to grab user statistics..
$getQuizMode      = "SELECT `QuizModeScore` FROM `userstats` WHERE UserId = $userId";
$getChallengeMode = "SELECT `ChallengeModeScore` FROM `userstats` WHERE UserId = $userId";

$quizModeData      = mysqli_query($con, $getQuizMode);
$challengeModeData = mysqli_query($con, $getChallengeMode);

// Build the response
$arr = array('Quiz' => $quizModeData, 'Challenge' => $challengeModeData);

// echo the json back:
echo json_encode($arr);

ここに私のクライアント側のJavaScriptがあります:

var variableToSend = "109607962907537440488";

$.post('manageUserStats.php', {userId: variableToSend}, function(data){
    console.log("Got these user stats: ", data);
});

コンソールを見ると、これがログに記録されていることがわかります。

Got these user stats:  {"Quiz":{"current_field":null,"field_count":null,"lengths":null,"num_rows":null,"type":null},"Challenge":{"current_field":null,"field_count":null,"lengths":null,"num_rows":null,"type":null}}

ただし、ここに描かれているデータを取得したい:

もの

私は何を間違っていますか?この 2 つの数字だけを取得できないのはなぜですか?

4

1 に答える 1

3

動作しているものを取得するには、次を使用します。

$getQuiz = "SELECT QuizModeScore, ChallengeModeScore FROM userstats WHERE UserId = $userId";

$res = mysqli_query($con, $getQuiz);
$row = mysqli_fetch_assoc($res);
$quizModeData = $row['QuizModeScore'];
$challengeModeData = $row['ChallengeModeScore'];

それ以外の:

$getQuizMode      = "SELECT `QuizModeScore` FROM `userstats` WHERE UserId = $userId";
$getChallengeMode = "SELECT `ChallengeModeScore` FROM `userstats` WHERE UserId = $userId";

$quizModeData      = mysqli_query($con, $getQuizMode);
$challengeModeData = mysqli_query($con, $getChallengeMode);

$_POST['userId']また、クエリで使用する前に検証する必要があります。PDOをお勧めします。なぜなら、パラメータ化するとmysqliが機能するのが面倒だからです。

編集

PDO として使用するには、PDO オブジェクトの作成方法を参照してから、それ$pdoが構築に使用した変数の名前であると仮定して、次を使用しますPDO

$query = "SELECT QuizModeScore, ChallengeModeScore FROM userstats WHERE UserId = ?";
$st = $pdo->prepare($query);
$st->execute(array($userId));
$row = $st->fetch(PDO::FETCH_ASSOC);
$quizModeData = $row['QuizModeScore'];
$challengeModeData = $row['ChallengeModeScore'];
于 2013-04-07T17:56:01.163 に答える