【发布时间】:2014-03-31 20:14:38
【问题描述】:
我正在尝试使用 mysqli 语句从 MySQL 表中检索一行。我已经尝试了几种不同的代码迭代,根据这个论坛和其他人的各种先前问题巧妙地改变了结构,但似乎除了“null”之外没有得到任何结果。
这是一个更大的脚本的一部分,它通过 jQuery 的 Ajax 请求调用。我已经在下面包含了 PHP 和 Javascript,尽管我对 JS 是好的(现在准备被告知……)相当有信心。
非常感谢任何关于我哪里出错的建议,因为我再也看不到树上的木头了,我只是在绕圈子。
PHP:
//initiate new mysqli object
$retrieve_link = new AuctionMySQLi($db_host, $db_user, $db_password, $db_name); //custom subclass, this definitely works as is used in other scripts on the server
//prepares DB query. Query has been tested on phpmyadmin and returns the expected data set
$stmt = $retrieve_link->prepare("SELECT `item_number`,`item_name`,`item_category`,`end_date`,`auction_type`,`high_bid_number` FROM `item` WHERE `item_number`=2");
$stmt->execute(); //no params to bind, so execute straight away
$stmt->bind_result($item);
$stmt->fetch();
$dataset = $item->fetch_row();
$response[0] = $dataset; //returned data forms part of larger dataset
echo json_encode($response); //return the entire dataset to a jquery Ajax request
die;
JS:
//this definitely works as objects have been returned via the 'success' function as the code was being developed
$.ajax({
url : "items/populate-home-page-script.php",
type : "GET",
data : {data:toSend},
dataType : "json",
success : function(data){
alert(data[0]);
},
error : function(jqXHR, textStatus, errorThrown){
alert(textStatus+','+errorThrown);
}
});
return false;
我还尝试使用fetch_assoc() 和fetch_row() 作为PHP 查询的一部分,从PHP 参考资料here 和here 获得指导。我还阅读了来自 Stackoverflow this、this 和 this 的这些问题,但对于我尝试的每种不同的代码组合,我似乎仍然得到了 null 的返回。
正如我在代码注释中所说的,我知道到数据库的链接可以像我在其他脚本和该脚本的其他区域中使用的那样工作 - 所以没有理由为什么这个对象不会工作。我也知道查询在输入到 phpmyadmin 时会返回预期的数据。
返回的数据只是一些字符串,我想做的只是将大约 16 个返回的数据集存储到一个数组中,作为循环的一部分,然后将该数组返回给 Ajax 请求。
【问题讨论】:
-
去掉所有的反引号
-
查询后有没有检查MySQL没有报错?
-
@Dagon - 不幸的是,尝试删除这些无济于事
-
@TeroKilkanen - 不,我完全忽略了一个很好的观点,我将在 execute() 阶段添加一个错误报告
标签: javascript php jquery mysql mysqli