带有绑定变量的SELECT查询示例

时间:2010-04-29 16:51:54

标签: php mysqli

我正在尝试将输入参数绑定到我的SELECT查询中,然后获取生成的行,但MySQLi似乎与我以前使用的其他API不同,我在PHP手册中迷失了。

以下方法是否正确?

$sql = 'SELECT product_id, product_name, area_id
    FROM product
    WHERE product_id = ?';
$stmt = $myMySQLi->prepare($sql);
if(!$stmt){
    throw new Exception('Prepare error');
}
if( !@$stmt->bind_param('i', $product_id) ){
    throw new Exception('Bind error');
}
if( !$stmt->execute() ){
    throw new Exception('Execute error');
}

如果是这样,我如何将行提取到关联数组?如果我过度复杂,我该怎么办?

2 个答案:

答案 0 :(得分:3)

使用bind_result您可以将结果映射到变量:

$stmt->bind_result($product_id, $product_name, $area_id);
while ($stmt->fetch()) {
    echo $product_id . ": " . $product_name;
}

答案 1 :(得分:3)

mysqli没有提供将结果提取到数组中的方法。如果您需要此功能,您有两个选择:

  1. 扩展mysqli并编写一个fetchAll方法
  2. 从现在开始使用pdo
  3. 提示:使用pdo

    只是想让你的生活更轻松。

    read this