使用php(mysqli)连续调用mysql过程不会产生结果
以下是我的存储过程:使用php(mysqli)连续调用mysql过程不会产生结果,php,mysql,stored-procedures,mysqli,Php,Mysql,Stored Procedures,Mysqli,以下是我的存储过程: CREATE PROCEDURE productFromCatID( IN ID INT ) BEGIN SELECT * FROM product WHERE cat_id = ID; END; 这是我的php文件: try { $mysqli = new mysqli($db_host, $db_username, $db_password, $db_name); $con = new mysqli($db_host, $db_username,
CREATE PROCEDURE productFromCatID(
IN ID INT
)
BEGIN
SELECT * FROM product
WHERE cat_id = ID;
END;
这是我的php文件:
try {
$mysqli = new mysqli($db_host, $db_username, $db_password, $db_name);
$con = new mysqli($db_host, $db_username, $db_password, $db_name);
} catch (PDOException $exception) {
echo "Connection error: " . $exception->getMessage();
}
print '<h3>MYSQLI: simple select</h3>';
$rs = $mysqli->query( 'SELECT * FROM product WHERE cat_id =2;' );
while($row = $rs->fetch_object())
{
print_r($row);
}
$q = 'CALL productFromCatID(1)';
$rs = $mysqli->query( $q );
print '<h3>MYSQLI: '.$q.'</h3>';
while($row = $rs->fetch_object())
{
print_r($row);
}
$q = 'CALL productFromCatID(2)';
$rs = $mysqli->query( $q );
print '<h3>MYSQLI: '.$q.'</h3>';
while($row = $rs->fetch_object())
{
print_r($row);
}
正如您在底部看到的,我在第39行得到了一个错误,在最后一次调用productFromCatID之后,它处于while循环的状态
while($row = $rs->fetch_object())
那么,我在调用程序时是否做错了什么,或者我是否错过了一个步骤
$q = 'CALL productFromCatID(1)';
$rs = $mysqli->query( $q );
print '<h3>MYSQLI: '.$q.'</h3>';
while($row = $rs->fetch_object())
{
print_r($row);
}
然后可以执行下一个过程调用
while($row = $rs->fetch_object())
$q = 'CALL productFromCatID(1)';
$rs = $mysqli->query( $q );
print '<h3>MYSQLI: '.$q.'</h3>';
while($row = $rs->fetch_object())
{
print_r($row);
}
while ($mysqli->next_result()) {
$rs = $mysqli->use_result();
if ($rs instanceof mysqli_result) {
$rs->free();
}
}