【问题标题】:Javascript to PHP PDO to MySQL Query returns emptyJavascript 到 PHP PDO 到 MySQL 查询返回空
【发布时间】:2012-11-28 09:14:06
【问题描述】:

我正在使用 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 级别,但我无法确定问题。

【问题讨论】:

  • 是不是因为必须设置$quadratID才能绑定查询?
  • 什么意思?你已经设置好了。这里的答案指出了您查询的问题

标签: php javascript mysql api pdo


【解决方案1】:

您的 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。

【讨论】:

  • 天哪,那是怎么偷偷溜进去的……对不起,通常会打印出错误
猜你喜欢
  • 2017-01-25
  • 2013-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-29
  • 2017-05-18
  • 1970-01-01
相关资源
最近更新 更多