【问题标题】:Im getting an error: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource [duplicate]我收到一个错误:警告:mysql_num_rows():提供的参数不是有效的 MySQL 结果资源 [重复]
【发布时间】:2023-03-31 16:31:01
【问题描述】:

可能重复:
Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource

我收到此错误:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/u391124286/public_html/options.php on line 7

我的代码是

<?php
$con=mysql_connect("localhost","root","pass"); 
mysql_select_db("my_db"); 
$query=mysql_query("SELECT * FROM Options where
Option='Map' AND 
Toggle='1'"); 
$count=mysql_num_rows($query);
if($count==1){ 
$Map='1';
}
else
{
$Map='0';
}

?>

我不明白为什么会发生这个错误,我对 php 还很陌生,所以它可能很简单。

【问题讨论】:

  • 查询成功了吗?通常在每个 mysql_query 调用后添加 or die(mysql_error()) 以捕获这些类型的错误。
  • 如果您的查询有错误,就会发生这种情况。那么查询结果($query)就是一个“无效结果”。
  • 请停止使用古老的mysql_* 函数编写新代码。它们不再维护,社区已经开始 deprecation process 。相反,您应该了解prepared statements 并使用PDOMySQLi。如果您无法决定,this article 将帮助您选择。如果你想学习,here is a quite good PDO-related tutorial.

标签: php mysql


【解决方案1】:

PHP 错误有时非常模糊,通过在 PHP My Admin 的 SQL 选项卡中输入完整的查询来查看是否可以获得更好的错误消息(并检查查询是否有效)。

【讨论】:

  • OP 只需要查找实际的错误消息,PHP 可以在被要求时产生详细的错误。
【解决方案2】:

经过进一步调查,您使用的字段名称“选项”是SQL中的保留字,表示您无法使用。以下是 SQL 保留字的完整列表:http://developer.mimer.se/validator/sql-reserved-words.tml

【讨论】:

    猜你喜欢
    • 2011-09-22
    • 2011-04-11
    • 2013-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    相关资源
    最近更新 更多