PHP - Mysqli查询与存储过程返回布尔值而不是结果(存储过程是一个选择)

时间:2015-11-22 19:49:29

标签: php mysql stored-procedures

这是我得到的错误:

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\wamp\www\ticosalud\front\index2.php on line 94

这就是我在php中进行查询的方式:

$query = "call featuredProduct1();";
$result = mysqli_query($dbc, $query);
$row = mysqli_fetch_assoc($result); //this is line 94
mysqli_close($dbc);

存储过程:

CREATE DEFINER=`root`@`localhost` PROCEDURE `featuredProudct1`()
BEGIN

DECLARE var_id_producto INT(10);
SELECT id_producto INTO var_id_producto FROM producto WHERE destacado = 1 LIMIT 0,1;

SELECT B.direccion, A.nombre_producto, A.descripcion
FROM
(SELECT nombre_producto, descripcion FROM producto WHERE destacado = 1 LIMIT 0,1) A
,
(SELECT direccion FROM producto_imagen WHERE id_producto = var_id_producto) B;

END

存储过程工作并在mysql中返回结果,但不在php mysqli查询函数中。这是我直接从数据库中获得的。

# direccion, nombre_producto, descripcion
'../images/Alimentos-Viva_Labs-Aceite_de_coco_organico.jpg', 'Aceite de coco orgánico', 'Excelente para cociinar y incluso para la piel!'

1 个答案:

答案 0 :(得分:0)

不确定你是否拼错了,但你打电话给你的程序

  

创建DEFINER = root @ localhost程序featuredProudct1()

和你的通话

$query = "call featuredProduct1();";

您可以将featuredProudct1更改为featuredProduct1,这样做会更好,或者您继续将featuredProduct1更改为featuredProudct1