2016-12-05 1 views
0

最初に、データベースにフィールドfile_sizeを持つ新しいレコードを挿入しました。それはすべて正常に動作します。次に、データベースから指定された名前とサイズのレコードを削除します。それは名前で動作しますが、私がAND文を追加すると、それは動作しません。mysql(file.size)から削除できません

$conn->query("DELETE FROM mytable WHERE name LIKE '%{$t}' AND file_size = '$file_size'"); 

file_sizeは$ file_size = $ _POST ['size']に渡されます。それは正しく動作します。データベースの番号と渡された番号は同じです。なぜ私は上のdoesntの仕事を考えていない...最初は私は多分これは異なるデータ型であると考えていたので、私は整数と文字列を比較しているが、それは問題ではない...任意のアドバイスは素晴らしいと評価されるはずです。

+0

を準備 – chris85

+0

あなたは文字列比較をしているので、両方の変数の 'var_dump()'(POSTとデータベース行)は正確な相違点を表示するはずです。 – jeroen

+0

あなたは '$ file_size'を消毒したいと思っていますか、自分自身をSQLインジェクションのために開いていますか? – Machavity

答えて

3

たぶんあなたは、クエリを出力し、それを実行し、それが働いてきた?リクエスト

$query=$conn->prepare("DELETE FROM mytable WHERE name LIKE :like_param AND file_size = :filesize"); 
$query->excute(array(':like_param' => '%'.$t, ':filesize' => $file_size)); 
関連する問題