2012-08-24 70 views
0

我想用PHP從MySQL刪除記錄它像數

字段名刪除mysql的記錄:周

週記錄的值如下:

200801 
200802 
200803 
200804 
200805 
etc 

我創建的文本字段命名「tYear」,用戶將從左邊插入前4個數字,並且sql語句應該刪除所有以它們開始的記錄,例如...如果用戶插入2008年所有上述記錄,應該刪除它們。

我使用下面的SQL語句,但它不工作

$sql= "DELETE from sites WHERE Week like '". $_POST['tYear']."'"; 
$results = mysql_query($sql); 

回答

2

您查詢的是: $ SQL =「從網站,像周「刪除」。 $ _ POST [ 'tYear'] 「'」。

,並在MySQL like你必須使用like '%%' or like '%'這麼用:

$sql= "DELETE from sites WHERE 
     Week like '%". mysql_real_escape_string($_POST['tYear'])."%'"; 
+0

謝謝,這是工作好我:) – Pipo

+2

但他會刪除,如果值是202008也... –

2

使用像

$sql= "DELETE FROM `sites` WHERE `Week` LIKE '". (int)$_POST['tYear']."%'"; 
+0

非常感謝您的幫助和您的快速回復,以上來自jogesh_p的聲明對我很好:) – Pipo

+0

SQL注入!只是POST%大量數據丟失。 – Thilo

+1

這就是爲什麼我在'$ _POST'前面傳遞'(int)'的原因。你如何使我的查詢與數據庫混亂? –

1

試試這個

$sql= "DELETE from sites WHERE Week like '". $_POST['tYear']."%'"