php调用mysql存储过程 虽然已成功,mysql_num_rows疑问。

北京不不 2010-11-04 08:06:29

define('CLIENT_MULTI_RESULTS', 131072);//本地化
$conn = @ mysql_connect("localhost", "root", "ls123456",1,CLIENT_MULTI_RESULTS) or die("数据库链接错误");
mysql_select_db("traveldemo", $conn);
mysql_query("set names utf8");

$sql="call paging('...参数,这里就不写了')" //调用存储过程
$result=mysql_query($sql);
if(mysql_num_rows($result)!=0)
{
while($row=mysql_fetch_array($result);
{
//...本人确认这里都已经成功,
}

}
//问题主要在后面----------------
$sqls="select * from table where ID=234";
$result=mysql_query($sqls);
if(mysql_num_rows($result)!=0)
{
while($row=mysql_fetch_array($result);
{
.....
}

}
//界面上就提示:Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
//可我print $sqls复制到数据库里执行,没错误,也有记录。
//是不是本地化那个操作的原因,导致非存储过程无法读取。
//如果(本地化)单执行存储过程,或者(去掉本地化)单执行后面的。都没错。
//郁闷透顶,咨询下各位。
...全文
161 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
北京不不 2010-11-17
  • 打赏
  • 举报
回复
补充一下,结果就是存储过程的执行方法得不同,否则,执行一次,他就关一次数据库连接,那么下面的query就无法执行了。
在-云端 2010-11-05
  • 打赏
  • 举报
回复
哈哈~我特意查了下!!如果是存储过程的问题的话应该是出在你调用的时候!

mysql_query是支持存储过程的调用的!

调用那步改成

$sql="call paging('参数,参数');"; //调用存储过程
$result=mysql_query($sql);


你少了个两个;号!试试看如何!



北京不不 2010-11-05
  • 打赏
  • 举报
回复
问题无人解决啊。CSDN没落了。等等看有没有人再回答,下午结贴。
北京不不 2010-11-05
  • 打赏
  • 举报
回复
都已经执行了,肯定创建成功。有人说mysql_query不能执行存储过程。
搞晕了。mysql数据库是我见过的。最难搞的。
在-云端 2010-11-05
  • 打赏
  • 举报
回复
那你检查了存储过程是否成功创建呢,以及相关联的数据表是否存在呢!

很多mysql的第三方工具不支持创建存储过程,推荐sqlyog,或者直接mysql命令行
北京不不 2010-11-05
  • 打赏
  • 举报
回复
建好的啊。只是加了存储过程才有这错误。
在-云端 2010-11-05
  • 打赏
  • 举报
回复
晕~~你自己没把环境都建好么?
北京不不 2010-11-05
  • 打赏
  • 举报
回复
首先谢谢你。

我确认有这表,所有的SQL语句输出来,放入数据库直接执行都没错。
我怀疑是那个本地化的问题。不本地化,执行不了存储过程。本地化后,执行不了后面的普通语句。
在-云端 2010-11-05
  • 打赏
  • 举报
回复
你确认这个库里存在这张表?~

那你试过mysql_query($sqls,$conn);没
北京不不 2010-11-05
  • 打赏
  • 举报
回复
还是有问题啊。一样。数据库是存在的。
北京不不 2010-11-05
  • 打赏
  • 举报
回复
结贴,虽然问题依旧。估计是我存储过程写的不好。我先看看。
在-云端 2010-11-04
  • 打赏
  • 举报
回复
 
//问题主要在后面----------------
$sqls="select * from table where ID=234";
$result=mysql_query($sqls);
if(mysql_num_rows($result)!=0)
{
while($row=mysql_fetch_array($result);
{
.....
}

}


你确认下你搜索的这个表是否在

mysql_select_db("traveldemo", $conn);

里的traveldemo库中!

我看了下正代码的问题很大可能就出在这里。
如果不是这里的话你再检查下
$sqls="select * from table where ID=234";
$result=mysql_query($sqls);
将$result=mysql_query($sqls);改成$result=mysql_query($sqls,$conn);
北京不不 2010-11-04
  • 打赏
  • 举报
回复
mysql_num_rows($result)!=0
问题这里拉写了,程序上是有的。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧