-4

重複の可能性:
警告: mysql_fetch_array() は、パラメーター 1 がリソースであると想定しています。

エラーの表示:

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));
?>
4

3 に答える 3

1

()for stringは必要ありません$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);
于 2012-06-19T06:17:07.480 に答える
0

mysql 接続を開く必要がありますhttp://de.php.net/mysql_connect

mysql_connect('localhost', 'mysql_user', 'mysql_password');
于 2012-06-19T06:19:10.677 に答える
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 データをフィルタリングしておらず、脆弱性であることに注意してください。

于 2012-06-19T06:31:29.487 に答える