1

php を使用して mysql のデータベースのテーブルから行を削除していますが、機能していません。私は空想的なことをしようとさえしていません.1行を削除するだけです. コードは次のとおりです。

mysql_query("DELETE FROM feed WHERE feed = '$feed'") or die("Query failed! with '$feed'");

これが機能している間、これは機能しません

mysql_query("DELETE FROM feed WHERE feed = 'hello'") or die("Query failed! with '$feed'");

私を助けてください...

完全なコード (以下のコメントに基づく):

$feed = $_POST['feed'];
$date = $_POST['date'];
$time = $_POST['time'];
echo $feed;
echo $date;
echo $time;
//$r = mysql_query("DELETE FROM feed WHERE date = '$date' AND time = '$time'") or die("Query failed! with '$feed'");
$r = mysql_query ("DELETE FROM feed WHERE feed = '" . mysql_real_escape_string ($feed) . "'") or die ("Query failed with {$feed} and mysql error: " . mysql_error); )
4

3 に答える 3

1

デバッグの目的で、印刷mysql_errorしてエラーの原因をよりよく理解してください。

私の推測では、$feed一重引用符が含まれている可能性があります。それを回避するmysql_real_escape_string

mysql_query ("DELETE FROM feed WHERE feed = '" . mysql_real_escape_string ($feed) . "'") or
die ("Query failed with {$feed} and mysql error: " . mysql_error());

ちなみに、mysql 拡張機能は廃止されているため、mysqli または PDO を検討することをお勧めします。

于 2013-08-16T03:28:39.660 に答える
0

これを試してください... $feed 変数の周りに中括弧を追加してください

mysql_query("DELETE FROM feed WHERE feed = '{$feed}'")
于 2013-08-16T03:10:34.980 に答える
0

varchar と言うとき、これはおそらく URL を含むかなり長い文字列ですか?

文字列にバックスラッシュが含まれている場合、これらはエスケープ文字として解釈されます。また、mysql_real_escape_string() でクリーンアップせずに POST 変数から直接 SQL クエリを実行しないでください。

また、$feed 変数の末尾にトリム ($feed); のスペースがないことを確認してください。

于 2013-08-16T04:50:05.330 に答える