更新到准备好的SQL语句不返回结果

时间:2016-03-25 08:47:14

标签: php sql prepared-statement

我在更新网站时遇到问题。考虑到安全性,我试图使用准备好的PDO重写SQL语句。这是我的首选。

我正在处理的网站有此查询,通过json将结果返回到搜索框。它有效......

$sql = "SELECT * FROM stock_c_ranges WHERE deleted = 'no' AND current_status = 'current'";
$result = mysqli_query($conn, $sql);
    $results_list = array();
while($row = mysqli_fetch_array($result)){
    $results_list[] = $row['manufacturer_name'].' ID:'.$row['id'];
}

echo json_encode($results_list);

我使用准备好的陈述重写了......

$range = "SELECT * FROM stock_c_ranges WHERE deleted= :deleted AND current_status= :cstatus";
$deleted='no';
$c_status='current';
$result_lists=array();
$stmt=$pd_con->prepare($range);
$stmt->bindParam(':deleted',$deleted,PDO::PARAM_STR);
$stmt->bindParam(':cstatus',$c_status,PDO::PARAM_STR);
$stmt->execute;
while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
    $results_list[] = $row['manufacturer_name']. 'ID:'.$row['id'];
}
 echo json_encode($results_list);

.....这不是

我发现了一个明显的语法错误,在我看了很久之后我只是盲目的,或者有一些关于使用我不知道的PDO和JSON / AJAX的事情阻止它运作。

1 个答案:

答案 0 :(得分:1)

道歉,在这里写下它突出了明显的......

$stmt->execute;

原本应该......

$stmt->execute();