【进去请严肃】从mysql取数据时提示Warning:mysql_fetch_array():suppliedargumentisnotavalidMySQLresult
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【进去请严肃】从mysql取数据时提示Warning:mysql_fetch_array():suppliedargumentisnotavalidMySQLresult,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3434字,纯文字阅读大概需要5分钟。
内容图文
![【进去请严肃】从mysql取数据时提示Warning:mysql_fetch_array():suppliedargumentisnotavalidMySQLresult](/upload/InfoBanner/zyjiaocheng/216/39cc6bc1525143e4a73633fc79c21667.jpg)
如题,这个问题我上百度,google查询了无数,多少是因为sql查询语句错误,查不到数据导致。其中有个人,怎么说呢,感觉这人在故意误导别人,到处告诉别人在mysql_fetch_array加个@来屏蔽错误信息,其实问题根本没解决,仅仅是不提示错误而已。下面是代码
$conn=mysql_connect("localhost","test","test");
echo $conn."
";//此处打印结果为:Resource id #1
mysql_select_db("test")
$r=mysql_query("select * from table1 where id > 0",$conn);
if($r==false) echo "query error";//此处打印结果为:query error
else
{
while ($row=mysql_fetch_array($r,MYSQL_ASSOC))
{
$rows[]=$row;
}
}
其实,这个程序,我在本地是可以运行的,可传到houstmonster虚拟机上就不行了,为调试,我把程序简化成上面的样子,可还是不行,执行query查询后,一直返回false,取数据时就报错,Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result
我用phpMyadmin连上服务器,执行select * from table1 where id > 0是没有问题的。
请高手指点,我是初学php,从c#转过来的。
------解决方案--------------------
$r=mysql_query("select * from table1 where id > 0",$conn);
你是不是写反了:$r=mysql_query($conn,"select * from table1 where id > 0");
while ($row=mysql_fetch_array($r,MYSQL_ASSOC))
MYSQL_ASSOC?需要这个么?直接while ($row=mysql_fetch_array($r))不可以么?为什么你的写法和我的不一样了~~~~
------解决方案--------------------
建议多看下手册,学会看手册,大多数问题就可以自己搞定了.
------解决方案--------------------
上传到服务器要改用户名和密码
- PHP code
$conn=mysql_connect("localhost","test","test") or die('联接不成功'); mysql_select_db("test"); //注意分号 $r=mysql_query("select * from table1 where id > 0",$conn) or die("查询不成功"); if(mysql_num_rows($r)>0){ //如果有记录则执行 while ($row=mysql_fetch_array($r)) { $rows[]=$row['字段']; } }
------解决方案--------------------
------解决方案--------------------
MYSQL_ASSOC,应该是将行返回为管理数组,字段名表示键,而字段内容表示值。楼主说,你是在空间上执行错误,你确定你在数据库的配置上没有问题吗?
另外我通常是使用mysqli扩展来操作的。mysql_fetch_array是不是php4的写法啊?mysql_fetch_array($query);
------解决方案--------------------
我以前也遇到加@ 出错,但是我后来发现。如果要加就要全部加,要么全部不加。加个别两个就会报错。
5楼的代码已经写的很清楚了。lz再多看看手册吧
------解决方案--------------------
返回数组为false
这种情况我遇到过一回,不过是别人说access的.
建议查看服务器和本地的mysql版本,以及建库语句是否一致.
while ($row=mysql_fetch_array($r,MYSQL_ASSOC))
问题可能就出在你加的哪个参数MYSQL_ASSOC,其实你直接$row=mysql_fetch_array($r),默认是两种数字索引和字段索引都存在,然后print_r($row)查看服务器是否支持字段名索引.
------解决方案--------------------
------解决方案--------------------
呵呵,没遇到问题的时候你可能永远不会相信,调试一下就知道为什么了!
------解决方案--------------------
内容总结
以上是互联网集市为您收集整理的【进去请严肃】从mysql取数据时提示Warning:mysql_fetch_array():suppliedargumentisnotavalidMySQLresult全部内容,希望文章能够帮你解决【进去请严肃】从mysql取数据时提示Warning:mysql_fetch_array():suppliedargumentisnotavalidMySQLresult所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。