我正在尝试将输入参数绑定到我的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');
}
如果是这样,我如何将行提取到关联数组?如果我过度复杂,我该怎么办?
答案 0 :(得分:3)
使用bind_result
您可以将结果映射到变量:
$stmt->bind_result($product_id, $product_name, $area_id);
while ($stmt->fetch()) {
echo $product_id . ": " . $product_name;
}
答案 1 :(得分:3)
mysqli没有提供将结果提取到数组中的方法。如果您需要此功能,您有两个选择:
提示:使用pdo
只是想让你的生活更轻松。