可能重复:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in
显示错误:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\task2\ajax\editfrom.php on line 6
代码是,
<?php
$sql = ('select * from task_table where id='.$_POST['id']);
$row = mysql_fetch_array(mysql_query($sql));
?>
答案 0 :(得分:1)
字符()
不需要$sql
。
如果id
是数字类型,那么您应该这样做:
$sql = 'select * from task_table where id='.(int)$_POST['id'];
或者,如果id
是字符串类型,那么您应该这样做:
$sql = "select * from task_table where id='" . mysql_real_escape_string($_POST['id']) . "'";
最后,您需要进行错误检查。
$ret = mysql_query($sql);
if (!$ret) {
die mysql_error();
}
$row = mysql_fetch_array($ret);
答案 1 :(得分:0)
您必须打开mysql连接http://de.php.net/mysql_connect
mysql_connect('localhost', 'mysql_user', 'mysql_password');
答案 2 :(得分:0)
尝试执行此代码,您将看到所有错误:
<?php
mysql_connect('localhost', 'mysql_user', 'mysql_password') or die ("Couldn't connect to database.");
mysql_select_db('my_database');
$query = sprintf("SELECT * FROM `task_table` WHERE id='%s'",
mysql_real_escape_string($_POST['id']));
$result = mysql_query($query);
var_dump($result);
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
sprintf("c1: %s c2: %s", $row[0], $row[1]);
}
?>
请注意,在您的示例中,您没有过滤POST数据,这是一个漏洞。