2 回答
TA贡献1805条经验 获得超10个赞
从从数据库调试您的实际结果开始。
if (isset($_REQUEST['customer_id'])) {
$id = intval($_REQUEST['customer_id']);
$query = "SELECT * FROM customers WHERE customer_id=:id";
$stmt = $pdo->prepare( $query );
$stmt->execute(array(':id'=>$id));
$row=$stmt->setFetchMode(PDO::FETCH_ASSOC);
您不是在检查错误。
两个建议:
1) 您正在使用<?php echo $row['first_name'];?>. 如果您检查了结果集,您会发现其中有什么问题。只需使用 print_r() 等将结果输出到(错误命名的)$row 变量中。我相信你会看到哪里出了问题。
2) 我强烈建议反对使用 $_REQUEST。它很懒惰而且容易出错。您知道“customer_id”从何而来吗?会议?曲奇饼?邮政?还是得到?如果您通过 GET 传递信息 => 使用 GET
TA贡献1817条经验 获得超14个赞
我假设这customer_id是您数据库中的唯一键,并且数据库中的每个 id 只返回一行。那么,如何正确使用 PDO 语句:
$sql = "SELECT * FROM customers WHERE customer_id=:id";
//Prepare your SELECT statement.
$statement = $pdo->prepare($sql);
//The Primary Key of the row that we want to select.
$id = intval($_REQUEST['customer_id']);
//I highly recomment not to use $_REQUEST, use $_GET or even better $_POST
//Bind our value to the paramater :id.
$statement->bindValue(':id', $id);
//Execute our SELECT statement.
$statement->execute();
//Fetch the row.
$row = $statement->fetch(PDO::FETCH_ASSOC);
//If $row is FALSE, then no row was returned.
if($row === false){
echo $id . ' not found!';
} else{
echo 'Found: ' . $row['first_name'];
}
编辑 另外,像这样改变你的ajax请求:
$.ajax({
url: 'getCustomerDetails.php',
type: 'POST',
data: {customer_id:uid}
})
- 2 回答
- 0 关注
- 146 浏览
添加回答
举报