1

次のコードがあります。

$link = new PDO("mysql:dbname=$databasename;host=127.0.0.1",$username,$password);
$query = $link->prepare("SELECT * FROM index WHERE sbeid=:idvar");
for($j = 1; $j < count($array); $j++)
{
    if($array[$j][16] == "TRUE" || $array[$j][16] == "FALSE")
    {
        $paramforquery = $array[$j][25];
        $query->bindParam(":idvar",$paramforquery);
        $query->execute();
        $result = $query->fetchAll();
        //do things with the $result
        $query->closeCursor();
    }
    //else if, do stuff
}
$link = null;

$array経由で正常にロードされる CSV ファイルからの入力で構成される大きな配列ですfopen()

私の問題はこれです: クエリが機能しません。データがデータベースにあることは事実 (ファイルからのいくつかのサンプル値を使用してサーバー上で直接クエリを実行) で知っていますが、ループが実行されるたびvar_dumpにsを実行すると、空の配列が得られます。$resultfor

私は何を間違っていますか?

ティア。

4

2 に答える 2

1

本当に接続していますか?

try {
    $link = new PDO("mysql:dbname=$databasename;host=127.0.0.1",$username,$password);
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
}

これにより、接続試行による例外がキャッチされます。これで問題がなければ、クエリを $link 行の下に置いて、何が返されるかを確認してください。

クエリを手動で実行する場合、DB 接続に関係があると思います。エラー報告がオンになっていることを確認してください。

追加:クエリには、これがあります :idvar ? この $idvar のような PHP 変数を使用するべきではありません。

それで

$query = $link->prepare("SELECT * FROM index WHERE sbeid=" . $idvar);
于 2009-06-28T17:35:16.303 に答える