我用php制作了RSS,我有 问题。 当我从用户那里获得输入时,我收到错误。 错误是:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\rss.php on line 52
<html>
<head>
<title>RSS Feed</title>
<style>
h1{
text-align: center;
color:black;
}
#link
{
margin: 100px 50px;
}
</style>
</head>
<body>
<h1>RSS Feed</h1>
<form method="post" name="lin">
<a>Put link: </a><input type="text" name="link">
<input type="submit" value="submit">
</form>
<?php
$connection = mysql_connect("localhost", "root", "")
or die("It has problem with connect to mysql server");
$db = mysql_select_db("rss", $connection)
or die("dont find some database");
$link = file_get_contents(@$_POST['link']);
$domain = strstr($link, '<a title=');
$query = "SELECT * FROM `link`";
$result = mysql_query($query)
or die("Query Faild!: " . mysql_error());
if($doamin == TRUE)
{
$query = "INSERT INTO `link` (title) VALUES('NewMessage')";
$result = mysql_query($query)
or die("Query faild!: " . mysql_error());
}
else
{
return 0;
}
while($row = mysql_fetch_array($result))
{
print '<div id="link"></br />';
print $row['title'];
print "</a>";
}
mysql_close($connection);
?>
</body>
</html>
请帮忙
答案 0 :(得分:0)
$ result被声明两次。我想你想要第一个,但是如果$ domain == TRUE你得到第二个$ result,它是boolean(插入的结果),因此是错误信息。
答案 1 :(得分:0)
我的猜测是,只有当$ domain为true时才会出现错误,导致第44行在INSERT语句上返回一个mysql_query调用时覆盖$ result,返回一个布尔值:
答案 2 :(得分:0)
这部分是你的问题:
if($domain == TRUE)
{
$query = "INSERT INTO `link` (title) VALUES('NewMessage')";
$result = mysql_query($query)
or die("Query faild!: " . mysql_error());
}
else
{
return 0;
}
while($row = mysql_fetch_array($result))
您正在插入一条记录并期望它返回不能记录的内容。您需要运行SELECT查询以恢复记录集
答案 3 :(得分:0)
使用print mysql_error();
找出原因。
$doamin
拼写错误。因此,INSERT
永远不会被执行。如果它已运行,则之前的$result
将消失并导致上述错误Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given