概述
标题mysql存储过程中利用传入和传出参数获取查询记录输出方法。
查询结果有两种:
第一种查询结果是单条记录,可利用传出参数输出,也可直接输出。
第二种查询结果是多条记录,不能用传出参数的方式输出,可直接输出。
例子为查询信息为表中mac字段符合条件的记录。
1、输出单条结果使用传出参数的存储过程如下:
DROP PROCEDURE `find`;
CREATE DEFINER=`user`@`%` PROCEDURE `find`(IN `id` VARCHAR(32) CHARSET utf8, OUT `res` VARCHAR(255) CHARSET utf8) NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN
SELECT mac FROM vic_sale WHERE mac=id INTO res;
SELECT res;
END
2、输出多条结果不使用传出参数的存储过程如下:
DROP PROCEDURE `find`;
CREATE DEFINER=`user`@`%` PROCEDURE `find`(IN `id` VARCHAR(32) CHARSET utf8, OUT `res` VARCHAR(255) CHARSET utf8) NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN
SELECT mac FROM vic_sale WHERE mac LIKE CONCAT("%",id,"%");
END
PHP代码如下
<?php
header("Content-type: text/html; charset=utf-8");
error_reporting(0);//禁用错误报告
$id=$_POST["id"];
echo $id;
echo "<br>";
$conn = new mysqli('localhost','user','password','db');
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "数据库连接成功!<br>";
mysqli_query($db,"SET NAMES utf8");
$sql = "call find('{$id}',@res)";
$result=$conn->query($sql);
if ($result==null){echo "没有找到记录!<br>";}
if ($result->num_rows > 0) {
// 输出数据
while($row = $result->fetch_assoc()) {
echo "mac: " . $row['mac']. "<br>";//不使输出参数,查询单个结果或多个结果用这句,$row[]里面放查询字段名。
echo "res: " . $row['res']. "<br>";//使用输出参数用这句,$row[]里面放传出参数名。
}
}
//-----------------
$conn->close();
?>
最后
以上就是粗心西装为你收集整理的mysql存储过程中传入,传出参数和输出多条查询记录的方法的全部内容,希望文章能够帮你解决mysql存储过程中传入,传出参数和输出多条查询记录的方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复