这是我的代码,我遇到了问题,因为当我在WAMP中运行时,会发生这种情况:
警告:Mysql_num_rows()期望参数1为资源
警告:mysql_fetch_array()期望参数1为资源
(Full error)。
<?php
mysql_select_db("spectrum-solaris",$conex);
$query = mysql_query("SELECT id,name,tittle,body FROM articles ORDER BY id DESC",$conex);
$row = mysql_num_rows($query);
if($row > 0 ){
while($row = mysql_fetch_array($query))
{
?>
<div class ="tematica" >
<p>
<small>Published by <b><a href="user.php"><?= $row['name'] ?></a></b></small>
</p>
<p>
<big><a href="show.php"><?= $row['tittle'] ?></a></big>
</p>
<p>
<b><?=$row['body']?></b>
</p>
</div>
<?php
}
}
mysql_free_result($query);
mysql_close($conex);
答案 0 :(得分:1)
函数mysql_num_rows()
和mysql_fetch_array()
需要正在评估的结果资源。此结果来自对mysql_query()
的调用。
所以你需要修改你的代码。首先在mysql_num_rows
插入后使用mysql_fetch_array
和$query = '...'
$result = mysql_query($query);
然后您可以运行mysql_num_rows($result)
和mysql_fetch_array($result)
。
您的错误会导致您向mysql_num_rows
和mysql_fetch_array
提供的数据不是资源类型。
我建议您开始使用PDO
而不是mysql_* functions
。
答案 1 :(得分:0)
mysql_num_rows
,mysql_fetch_array
期望有效资源。
这通常来自mysql_query,就像你一样。
但是您的mysql_query
首先失败,因为您从未连接到您的数据库,至少在此代码段中。
请参阅,
mysql_select_db("spectrum-solaris",$conex);
$ conex应该是对mysql_connect()
更改,
<?php
mysql_select_db("spectrum-solaris",$conex);
要,
<?php
$conex = mysql_connect('host', 'username', 'password');
mysql_select_db("spectrum-solaris",$conex);
答案 2 :(得分:-1)
由于你没有指明错误,我只需要一个刺:
此代码不会解析,因为它不正确。
<b><?=$row['body']?></b>
也许应该是这样的:
<b><? echo($row['body']); ?></b>
也许。您的页面中还有其他几个类似的错误。
还有两件事:
尽量不要像这样混合使用PHP和HTML。您的代码不是网站上最糟糕的攻击者,但随着脚本变得越来越复杂,它将变得越来越难以调试。
cHao用mysql_敲诈钱请使用mysqli_或PDO这两者都有很多优点,其中最重要的是它们是目前推荐的形式。 mysqli_并不比mysql更难使用,您在级别上会发现的唯一区别是需要在某些函数中指定连接。