0

この準備されたステートメントにいくつかの実際の問題があり、その理由がわかりません。誰か助けてくれないかしら。私は正しい情報を送信していることを知っており、情報が探している場所に存在することを知っていますが、準備されたステートメントは単に何も返しません。

私はこのようにPHPファイルを呼んでいます

$.ajax({
            type: "POST",
            url: "include/main.php",
            data: {func:'LoadThisFile',thefile:NewItemFilename},
            success: function(server_response)
            {
                if(server_response)
                {
                    Doing stuff....
                }
                return;
            }
        });

これは準備されたステートメントです

$stmt = $mysqli->prepare("SELECT `FileData` FROM `DataTable` WHERE `Filename`=?");
$stmt->bind_param("s", $tTheFilename);
$tTheFilename = $ThisFileName;
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();
echo $result;
$stmt->close();
$mysqli->close();

私はチェックし、ダブルチェックしました:
プリペアドステートメントに送信される変数NewItemFilenameには、私が期待するものが正確に含まれています。

データベースとテーブルの両方が存在し、返そうとしているデータも存在します。実際、phpMyAdmin内でまったく同じステートメントを使用し、返そうとしているファイル名を使用すると、準備したものから必要な結果が得られます。声明。

echoコマンドを使用することで、データベース接続が確立されており、ステートメント自体にエラーがスローされていないように見えることがわかります。何も返されないことを除いて、すべてがうまくいくようです。

誰かが私が間違っていることを教えてもらえますか?

どうもありがとう、BS

4

2 に答える 2

1

結果の実行を保存する必要があります。

$ stmt-> store_result();を試してください。$ stmt-> fetch();の前

于 2012-05-28T09:48:37.940 に答える
0

どのように初期化するかを示していません$tTheFilename。その内容が適切であると仮定すると、パラメータをバインドする必要があります

$stmt->bindParams(1, $tTheFilename);

http://php.net/manual/de/pdostatement.bindparam.php

于 2012-05-28T09:45:55.950 に答える