可能重复:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result
我有个窃听器:
mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/marlon/domains/webmasterplaats.nl/public_html/edit.php on line 36这是代码:
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$toegang[] = '86.91.195.26';
$toegang[] = '84.86.189.70';
$valid = true;
if(in_array($ip, $toegang) || isset($valid))
{
if(isset($_GET['id']))
{
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
mysql_query("UPDATE news SET titel='" . mysql_real_escape_string($_POST['titel']) . "', inhoud='" . mysql_real_escape_string($_POST['edit2']) . "' WHERE id='" . mysql_real_escape_string($_GET['id']) . "'");
echo 'Met success geupdate.' ;
}
$database = mysql_connect('localhost','marlonhe19','123456789asd');
mysql_select_db('wmp', $database);
$id = $_GET['id'];
$mysql = mysql_query("SELECT * FROM news WHERE id='$id' ;");
while($row = mysql_fetch_assoc($mysql)){
$id = $row['id'];
$titel = $row['titel'];
$inhoud = $row['inhoud'];
echo '
<form id="form1" name="form1" method="post" action="">
<input type="text" name="titel" value="$titel" /><br />
<textarea name="edit2">$inhoud</textarea> <br />
<input type="submit" name="Submit" value="Opslaan" />';
}
}
}有什么问题吗?
发布于 2010-08-25 17:09:45
警告: SQL注入可能。看来您的查询失败了。
代之以:
$mysql = mysql_query("SELECT * FROM news WHERE id='$id' ;");通过以下方式:
$mysql = mysql_query("SELECT * FROM news WHERE id='$id' ;") or die(mysql_error());您应该创建自己的错误处理函数,在不立即退出的情况下显示错误消息是可能的。
发布于 2010-08-25 17:10:37
您不需要使用分号(;):
$mysql = mysql_query("SELECT * FROM news WHERE id='$id' ;");由于要传递;,查询执行失败,mysql_query返回false而不是对象。当您将false传递给mysql_fetch_assoc时,它会给出所得到的错误。
始终添加错误检查:
$mysql = mysql_query("SELECT * FROM news WHERE id='$id'") or die(mysql_error());看来您的DB选择部分有问题。在此基础上添加错误检查:
编辑:
mysql_select_db('wmp', $database) or die(mysql_error());发布于 2010-08-25 17:15:08
你应该检查一下是否有错误。
$news_result = mysql_query("SELECT * FROM news WHERE id='$id'")
or die("Query failed: ".mysql_error());此外,您应该将查询结果变量命名为合理的变量,即不命名为$mysql,并且应该使用绑定变量来防止SQL注入。考虑以下查询字符串:
page.php?id='+OR+'1'='1https://stackoverflow.com/questions/3568478
复制相似问题