编辑PHP表单

编辑PHP表单,php,mysql,Php,Mysql,可能重复: 显示错误: 警告:mysql\u fetch\u array()希望参数1是资源, 第6行C:\wamp\www\task2\ajax\editfrom.php中给出的布尔值 代码是 <?php $sql = ('select * from task_table where id='.$_POST['id']); $row = mysql_fetch_array(mysql_query($sql)); ?> 字符串$sql不需要() 如果i

可能重复:

显示错误:

警告:mysql\u fetch\u array()希望参数1是资源,
第6行C:\wamp\www\task2\ajax\editfrom.php中给出的布尔值

代码是

<?php
    $sql = ('select * from task_table where id='.$_POST['id']);

        $row = mysql_fetch_array(mysql_query($sql));
?>

字符串
$sql
不需要
()

如果
id
是一种数字类型,则应执行以下操作:

$sql = 'select * from task_table where id='.(int)$_POST['id'];
$sql = "select * from task_table where id='" . mysql_real_escape_string($_POST['id']) . "'";
或者,如果
id
是字符串类型,则应执行以下操作:

$sql = 'select * from task_table where id='.(int)$_POST['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);

您必须打开mysql连接


尝试执行此代码,您将看到所有错误:

<?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]);
    }
?>

您在拨打此电话之前是否打开了连接?在达到这一点之前发生了什么?不要通过混合字符串来构建SQL。不要在PHP中使用
mysql.*
函数。