3

bind_result で mysqli を使用しようとしていますが、取得できるのは null 値だけです。じぶんの$stmt

行数が 0 より大きいので、データが含まれています。

どのような値が入る必要があるのか​​ よくわかりませんbind_result

マニュアルhttp://php.net/manual/en/mysqli-stmt.bind-result.phpを読みました

そして、彼らは私が何を入れるべきかを説明していませんbind_result

そこに列名を入れるべきですか?はいの場合、文字列として?必要な値を取得するにはどうすればよいですか?

これが私のコードです。助けてくれてありがとう。

$sql = "SELECT * FROM comments WHERE workout_name = ? AND user = ?"; 

    $stmt = $mysqli->prepare($sql) or trigger_error($mysqli->error."[$sql]");

    $stmt->bind_param('ss', $workout_name, $user);

    $workout_name = "rytg";
    $user = "tomer";

    $stmt->execute();

    $stmt->store_result();

    $stmt->bind_result($comment, $commented_user);

    if($stmt->num_rows > 0)
    {
    $response["workouts"] = array();

        while ($stmt->fetch()) 
    {
        // temp user array
        $workouts = array();

        $workouts["comment"] = $comment;
        $workouts["user"] = $commented_user;

        // push single product into final response array
        array_push($response["workouts"], $workouts);
    }

}

4

2 に答える 2

-2

現在、私の隣には動作する PHP インストールがないため、確認できませんが、次のように、クエリを実行する前にパラメーターと結果の両方をバインドする必要があると思います。

$workout_name = "rytg";
$user = "tomer";

$stmt = $mysqli->prepare($sql) or trigger_error($mysqli->error."[$sql]");
$stmt->bind_param('ss', $workout_name, $user);
$stmt->bind_result($comment, $commented_user);
$stmt->execute();

どちらについてもよくわかりませんstore_result()。結果を取得するときにそれを使用する必要があったことを覚えていないので、コードを使用せずにコードを実行してみて、何が起こるかを確認してください。

于 2013-07-31T08:19:21.267 に答える