2012-12-10 37 views
1

我正在构建一个API与Jav​​aScript和出于安全原因,我将我的PHP数据库调用切换到PDO。Javascript到PHP PDO到MySQL查询返回空

因为这样做,我有问题返回空数组(注意:不是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数组(数据库中的dummy-data应该返回5个结果),而是我收到[](空的JSON数组)。

我认为问题出在PHP级别,但我无法确定问题。

+0

是否因为在绑定到查询之前必须设置$ quadratID? –

+0

你是什么意思?你有它。这是你的查询的问题,这里的答案指出 – Ian

回答

4

你有一个错误在你的WHERE条件MySQL查询:

尝试了这一点,改用这个

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

:只有

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

使用一个凡在你的查询。

+0

哦,亲爱的,那里是怎么潜入的......我很抱歉,通常打印出来的错误 –