Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Fix mysql_num_rows()希望参数1是资源_Php_Html_Mysql_Mysqli - Fatal编程技术网

Php Fix mysql_num_rows()希望参数1是资源

Php Fix mysql_num_rows()希望参数1是资源,php,html,mysql,mysqli,Php,Html,Mysql,Mysqli,当我尝试将mysql数据带到表中时,getmysql\u num\u rows()希望参数1是resource。编码有什么问题?是否正确使用了mysql和mysqli?错误是针对行$num=mysql\u num\u行($result)。我很确定问题出在$result上,但我不知道如何解决它 <?php $connection=mysqli_connect("localhost"/*hostname*/, "username"

当我尝试将mysql数据带到表中时,get
mysql\u num\u rows()希望参数1是resource
。编码有什么问题?是否正确使用了mysql和mysqli?错误是针对行
$num=mysql\u num\u行($result)。我很确定问题出在$result上,但我不知道如何解决它

    <?php

 $connection=mysqli_connect("localhost"/*hostname*/,
                          "username"/*username*/,
                          "password"/*password*/,
                          "dbname"/*database name*/);
$query = "SELECT * FROM table";
$result = mysqli_query($query);
$num = mysqli_num_rows($result);
mysqli_close();

$i=0;
while ($i < $num) {
$f1=mysqli_result($result,$i,"rowa");
$f2=mysqli_result($result,$i,"rowb");
$f3=mysqli_result($result,$i,"rowc");
$f4=mysqli_result($result,$i,"rowd");
$f5=mysqli_result($result,$i,"rowe");        ?>
            <table>
            <tr>
                 <td>a</td>
                 <td>b</td>
                 <td>c</td>
                 <td>d</td>
                 <td>e</td>
            </tr>
            <tr>
                <td>
<font face="Arial, Helvetica, sans-serif"><?php echo $f1; ?></font>
</td>
<td>
<font face="Arial, Helvetica, sans-serif"><?php echo $f2; ?></font>
</td>
<td>
<font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font>
</td>
<td>
<font face="Arial, Helvetica, sans-serif"><?php echo $f4; ?></font>
</td>
<td>
<font face="Arial, Helvetica, sans-serif"><?php echo $f5; ?></font>
</td>           </tr>

            </table>
            <?php } ?>  

A.
B
C
D
E

用户名、密码、数据库和表名不是代码中使用的实际名称。

您混合了mysql和mysqli函数

将您的连接函数替换为
mysql\u connect()


甚至更好的是,由于mysql_uu函数已被弃用,请尝试将所有内容更改为
mysqli
或使用
PDO
这是一个简单的修复方法:仔细查看第一行:

mysqli_connect();
应该使用
mysqli.*
扩展,但随后您可以调用各种不推荐的
mysql.*
函数。只需将这些调用更改为更现代的、非弃用的
mysqli.*
对应调用即可

其他问题包括您呼叫mysqli\u close的时间太短(在您关闭连接后,您仍试图处理数据库结果)。
您甚至没有正确调用
mysqli\u close
:该函数要求您将db连接作为参数传递:

mysqli_close($connection);
花点时间

关于其他问题:在MySQL中,查询使用了一个保留关键字:
table
,应该转义:

$result = mysqli_query(
    $connection,//pass mysqli connection as first param
    'SELECT * FROM `table`'
);
if (!$result)
    exit('Query failed');//ALWAYS CHECK RETURN VALUES!!
$count = mysqli_num_rows($result);
//and so on

此错误意味着您的查询失败,因为您混合了mysql_*和mysqli_*

试试这个:

 $connection=mysqli_connect("localhost"/*hostname*/,
                          "username"/*username*/,
                          "password"/*password*/,
                          "dbname"/*database name*/);
$query = "SELECT * FROM table";
$result = mysqli_query($connection,$query);
$num = mysqli_num_rows($result);
更改:

$result = mysqli_query($query);
致:


我希望这将修复您的错误。

通过确保您具有有效的数据库连接,并且您的查询语句正确无误,可以修复的可能重复。注意:表是保留字。用回帖把它围起来。我并没有费那么大的劲帮你贴一个答案,让你回来再贴一个。您基本上重复发布了相同的问题。“错误出现在$num=mysql_num_rows($result);”代码体中没有。您有
$num=mysqli\u num\u行($result)WTF?糟糕的建议!使用
mysqli\u connect
是唯一应该保持原样的东西。不要用不推荐的坏版本替换好代码@EliasVanOotegem我正在编辑我的答案!!如果在我发布评论时你正在编辑它,我当然看不到。你不必大喊大叫。此外:您仍然建议更改
mysqli\u connect
。当然,你说最好不要这样做,但不要告诉人们他们仍然可以使用
mysql\u*
函数,因为扩展必须终止
mysqli\u结果
是否正确。感谢您提供手册的链接。为什么我看过的网站都没有链接到这一点。@TheOkayMan:我当然知道如何解决这个问题。我链接到了
mysqli.*
的手册,只需查看文档:传递给该函数的第一个参数是一个资源(mysqli_query
的返回值是一个
mysqli_result
对象,这是您需要传递的)
$result = mysqli_query($connection, $query);