并在test库上建一个sp_test()存储过程
DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`sp_test` $$
CREATE PROCEDURE `test`.`sp_test` ()
BEGIN
SELECT * FROM tb_test LIMIT 1;
SELECT * FROM tb_test LIMIT 2;
END $$
DELIMITER ; 你的存储过程有问题,改成这样:DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`sp_test` $$
CREATE PROCEDURE `test`.`sp_test` ()
BEGIN
SELECT * FROM tb_test;
END $$
DELIMITER ;
DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`sp_test` $$
CREATE PROCEDURE `test`.`sp_test` ()
BEGIN
SELECT * FROM tb_test LIMIT 1;
SELECT * FROM tb_test LIMIT 2;
END $$
DELIMITER ; 你的存储过程有问题,改成这样:DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`sp_test` $$
CREATE PROCEDURE `test`.`sp_test` ()
BEGIN
SELECT * FROM tb_test;
END $$
DELIMITER ;
我是想获得多个结果集啊,PHP支持多个SELECT的。
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = "call sp_test();";
$mysqli->multi_query($query);
$i = 1;
while($mysqli->more_results()){
if ($result = $mysqli->store_result()) {
while ($rowset = $result->fetch_row()) {
//printf("%s\n", $row[0]);
printResultSet($rowset, $i);
}
$result->close();
}
$i++;
$mysqli->next_result();
}
function printResultSet(&$rowset, $i) {
print "Result set $i:\n";
foreach ($rowset as $row) {
print $row . "\t";
}
print "\n";
}
$this->pdo->setAttribute(PDO::ATTR_CASE,PDO::CASE_NATURAL);
if ($transaction===true){
$this->pdo->beginTransaction();
if ($this->pdo->query($sql)===false){
$this->pdo->roolback();
}
else {
$this->pdo->commit();
}
}
else {
$this->result = $this->pdo->query($sql);
} switch ($fetchBy){
case 'id':
$this->result->setFetchMode(PDO::FETCH_NUM);
break;
case 'num':
$this->result->setFetchMode(PDO::FETCH_ASSOC);
break;
case 'both':
$this->result->setFetchMode(PDO::FETCH_BOTH);
break;
case 'obj':
$this->result->setFetchMode(PDO::FETCH_OBJ);
break;
default:
$this->result->setFetchMode(PDO::FETCH_BOTH);
break;
}
return $this->result->fetchAll();
}