这里php读取mysql结果集为什么不能用存储过程
首先创建一个mysql存储过程
接着我在php操作类里面写了一个方法
mysql.class.php:
然后再用smarty模板输出
index.php:
我的模板页是
index.html:
结果是可以正常显示,但是如果我把操作类的
换成
就报错 为 mysql_fetch_row(): supplied argument is not a valid MySQL result resource
如果有人知道可请教我这里如何调用存储过程
CREATE DEFINER=`root`@`localhost` PROCEDURE `News_getAll`()
select * from news;
接着我在php操作类里面写了一个方法
mysql.class.php:
function News_getAll() {
$allnews = array ();
$i = 0;
$result = mysql_query("select * from news");
while ($row = mysql_fetch_row($result)) {
$allnews[$i] = $row;
$i++;
}
return $allnews;
}
然后再用smarty模板输出
index.php:
<?php
include "smarty_inc.php";
include "mysql.class.php";
$db = new mysql('localhost', 'root', '', 'tianmei', 'GBK');
$allnews=$db->News_getAll();
$smarty->assign('allnews', $allnews);
$smarty->display('index.html');
?>
我的模板页是
index.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
</head>
<body>
{foreach item=v from=$allnews }
{$v[0]}
{$v[1]}
{$v[2]}
{$v[3]}<br>
{/foreach}
</body>
</html>
结果是可以正常显示,但是如果我把操作类的
$result = mysql_query("select * from news");换成
$result = mysql_query("call News_getAll()");就报错 为 mysql_fetch_row(): supplied argument is not a valid MySQL result resource
如果有人知道可请教我这里如何调用存储过程
...全文
相关推荐
php mysql procedure实现获取多个结果集的方法【基于thinkPHP】
在利用PHP和MySQL进行Web开发时,我们有时需要执行存储过程并在应用程序中获取多个结果集。这通常涉及到在PHP代码中使用MySQLi扩展函数,以及在MySQL服务器上定义相应的存储过程。
php调用mysql存储过程
"这篇文章主要介绍了如何使用PHP调用MySQL存储过程,特别强调了在遇到返回结果集的问题时,应使用db_mysqli模块代替db_mysql。文中给出了一个简单的PHP调用存储过程的示例代码,并提
php中调用MySQL存储过程
**处理结果集**: - 使用 `mysqli_query` 来执行存储过程。 - `mysqli_fetch_array` 用于从结果集中获取一行数据。 - 将每行数据存储到数组 `$arr` 中。
MySQL5创建存储过程的示例
值得注意的是,如果存储过程返回多个结果集,必须使用支持多结果集的PHP扩展来处理,如mysqli扩展。
PHP调用MySQL的存储过程的实现代码
PHP本身提供了两种主要的方式来调用MySQL的存储过程:MySQL扩展(mysql_)和MySQLi扩展(mysqli_)。


基础编程
