可能重复:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select
我正在尝试学习如何在PHP和MySQL中正确使用AJAX。我在这个网站上看过其他人的帖子与我正在使用的相同例子,但我没有看到任何关于我遇到的相同问题。
包含源代码的网站是PHP - AJAX and PHP。
我托管我的代码的网站是here。
第一个链接有一个工作示例,第二个链接显示我想要弄清楚的错误。
我尝试使用mysqli,但它说了一些关于期待两个参数的事情,所以我把它改回来了。如果有人就如何让它发挥作用提出建议,我将非常感激。
错误:mysql_fetch_array()期望参数1为资源,在第24行的/data/multiserv/users/748953/projects/1801445/www/test/getuser.php中给出null
html代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Ajax-PHP/MySQL Cooperation Test</title>
<script type="text/javascript">
function showUser(str)
{
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getuser.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<form>
<select name="users" onchange="showUser(this.value)">
<option value="">Select a person:</option>
<option value="1">Peter Griffin</option>
<option value="2">Lois Griffin</option>
<option value="3">Glenn Quagmire</option>
<option value="4">Joseph Swanson</option>
</select>
</form>
<br />
<div id="txtHint">Person info will be listed here.</div>
</body>
</html>
PHP:
<?php
$q=$_GET["q"];
include("dbinfo.inc.php");
$con = mysql_connect(localhost, $username, $password);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db($database, $con);
$resul1 = mysql_query('SELECT * FROM `ajax_demo` WHERE id = \'\".$q.\"\'') or die(mysql_error());
echo "<table border='1'>
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Age</th>
<th>Hometown</th>
<th>Job</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['FirstName'] . "</td>";
echo "<td>" . $row['LastName'] . "</td>";
echo "<td>" . $row['Age'] . "</td>";
echo "<td>" . $row['Hometown'] . "</td>";
echo "<td>" . $row['Job'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
?>
答案 0 :(得分:2)
您在$resul1
中分配值并使用mysql_fetch_array($ result)通知$result
答案 1 :(得分:1)
首先尝试检查$q
然后尝试使用此查询:
mysql_query("SELECT * FROM `ajax_demo`
WHERE id = '" . mysql_real_escape_string($q) ."'");
答案 2 :(得分:0)
将$resul1
更改为$result1
,您确实在那里写错了。
答案 3 :(得分:0)
将您的while语句更改为:
while($row = mysql_fetch_array($result1))
编辑:
确保始终检查您的代码并始终使用一致的命名约定,服务器指示的错误已足以检测程序的哪个部分发生问题(如果您需要,则无需运行任何其他功能)为您的开发服务器设置一个完整的调试设置,而不是在应用程序本身上设置它,而是为了安全目的将它关闭为实时服务器。
“错误:mysql_fetch_array()期望参数1为资源,在第24行的/data/multiserv/users/748953/projects/1801445/www/test/getuser.php中给出null”
这意味着错误发生在文件“/data/multiserv/users/748953/projects/1801445/www/test/getuser.php”的第24行,并且您使用的第一个参数上的变量函数“mysql_fetch_array”是导致问题的函数,因为语句“期望参数1是资源”,所以你应该直接找到这个错误所指向的程序部分,这对任何程序员都有帮助。 ;)
答案 4 :(得分:0)
您在$resul1
中使用mysql_fetch_array($result)
通知$result
分配值时出现拼写错误。