PHP预处理语句不返回数组

时间:2014-04-14 06:06:56

标签: php

当我绑定id变量时,我的数组为空。该表包含我在数组中需要的5列。这就是我试过的:

$records = array();
$id = 22;

if($results = $db->prepare("SELECT * FROM categories WHERE id = ?")) {
$results->bind_param('i', $id);
$results->execute();
if($results->num_rows) {
    while($row = $results->fetch_object()) {
        $records[] = $row;
    }
    $results->free();
}
}

print_r($records);

1 个答案:

答案 0 :(得分:0)

你是绑定参数'我'但使用'?'占位符。使用其中一个:

if($results = $db->query("SELECT * FROM categories WHERE id = ?")) {
$results->bind_param(1, $id);

if($results = $db->query("SELECT * FROM categories WHERE id = :i")) {
$results->bind_param(':i', $id);

有关更多示例,请参阅http://www.php.net/manual/en/pdostatement.bindparam.php