1

Javascript を使用して API を作成していますが、セキュリティ上の理由から、PHP データベースの呼び出しを PDO に切り替えました。

そうして以来、空の配列を返すクエリに問題がありました (注: MySQL 構文エラーではありません)。最新の例は次のとおりです。

/*JAVASCRIPT*/
var getSampleEntity = function(params) {
//Returns Object
return $.ajax({ 
    url: URL + 'downloadQuadrat_Organism.php',
    type: 'POST',
    data: { 'organismID': params.oid, 'quadratID': params.qid },
    dataType: dataType
});
}

ブラウザから送信されたヘッダー データ:

/*PACKAGE HEADER INFO*/
Request URL:http://..../downloadQuadrat_Organism.php
Request Method:POST
Status Code:200 OK
...
Form Data:
organismID:3

サーバーに送信されるもの...

/*PHP*/
//Init
$resultset = array();
$quadratID = $_POST['quadratID'];
$organismID = $_POST['organismID'];
$sql = 'SELECT * FROM Quadrat_Organism WHERE organismID = :organismID OR WHERE quadratID = :quadratID';

//Main
try{
    $db = connect();
    $stmt = $db->prepare($sql);
    $stmt->bindParam(':quadratID', $quadratID);
    $stmt->bindParam(':organismID', $organismID);
    $stmt->execute();

    while($row = $stmt->fetch(PDO::FETCH_ASSOC))
        $resultset[] = $row;

    //Return result in JSON
    $resultset = json_encode($resultset);
    print_r($resultset);

} catch(PDOException $e){
    print 'Error!: '.$e->getMessage().'<br/>';
}//End try catch

$db = null;

JSON の結果の配列を期待します (データベースのダミーデータは 5 つの結果を返す必要があります)、代わりに [] (空の JSON 配列) を受け取ります。

問題は PHP レベルにあると思いますが、問題を特定できません。

4

1 に答える 1

4

where Condition MySQLクエリにエラーがあります:

これを試して、これを使って

$sql = 'SELECT * FROM Quadrat_Organism 
WHERE organismID = :organismID OR quadratID = :quadratID';

それ以外の:

$sql = 'SELECT * FROM Quadrat_Organism 
WHERE organismID = :organismID OR WHERE quadratID = :quadratID';

クエリでは、where を 1 つだけ使用してください。

于 2012-12-10T21:42:59.830 に答える