2017-03-24 155 views
0

我在ubuntu 16.10上使用PHP 7和最新的mysql。這是當前的代碼,我有刪除MySQL行

<?php 
     $dbhost = 'localhost:3036'; 
     $dbuser = 'root'; 
     $dbpass = 'password'; 
     $conn = mysql_connect($dbhost, $dbuser, $dbpass); 

     $sql = "DELETE FROM databasetable WHERE collumA LIKE '%Test7%'" ; 
     mysql_select_db('jdbdev'); 
     $retval = mysql_query($sql, $conn); 

     if(! $retval) { 
      die('Could not delete data: ' . mysql_error()); 
     } 

     echo "Deleted data successfully\n"; 

     mysql_close($conn); 

?> 
+0

它不是'columnA ='%test%'它是'columnA''%test%'' – Dimi

+0

您的錯誤在這裏。 mysql_query有兩個參數。第一個是你的數據庫連接,第二個是你的查詢本身。作爲mysql_query($ conn,$ sql); – Akintunde007

+0

謝謝你,仍然不工作,因爲我也試過像 – Brigitte

回答

0

應低於查詢更改爲

DELETE FROM databasetable WHERE collumA like '%Test7%' 

=like操作

0

之間的差異假設你想刪除所有的行,其中collumA包含測試「Test7」,則需要使用like運算符,而不是=運算符:

DELETE FROM databasetable WHERE collumA LIKE '%Test7%' 
-- Here --------------------------------^ 
0

如果你想使用通配符%,那麼你必須等代替=使用,所以改變你的SQL語句:

"DELETE FROM databasetable WHERE collumA LIKE '%Test7%'" 

此外,mysql功能很容易受到SQL注入,你應該使用mysqli或甚至更好的PDO來管理你的數據庫。

+0

使用sqli或pdo也不起作用。 – Brigitte

+0

嘗試將您的主機變量設置爲localhost:$ dbhost =「localhost」 –

0
$sql = "DELETE FROM databasetable WHERE collumA= '%Test7%'" ; 

應該columnA LIKE '%TEST7%'

$sql = "DELETE FROM databasetable WHERE columnA like '%test7%' 

喜歡和=都是different

0

嘗試:

<?php 
     $dbhost = 'localhost'; 
     $dbuser = 'root'; 
     $dbpass = 'password'; 
     $db_name = 'jdbdev'; 
     $conn = mysqli($dbhost, $dbuser, $dbpass, $db_name); 

     try{ 
     if($conn->connect_error){ 
      echo 'Could not establish connection to database because '.$conn->connect_error; 
      } 
     }catch(Exception $ex){ 
      echo $ex->getMessage(); 
      exit; 
      } 

     $sql = "DELETE FROM databasetable WHERE databasetable.collumA LIKE '%Test7%'"; 
     $retval = $conn->query($sql); 

     if($retval === FALSE) { 
      die('Could not delete data: ' . mysql_error()); 
     } 

     echo "Deleted data successfully\n"; 

     mysql_close($conn); 

?> 

有時候,你必須引用數據庫表盈方列

+0

謝謝,這也沒有工作 – Brigitte

+0

那麼問題必須從您的數據庫連接。 – Akintunde007

+0

我把如果! $ conn打印不能連接,但它似乎連接,我得到了無法刪除數據錯誤retval – Brigitte

0

這不是很清楚,我您嘗試使用這個完成的任務:其中collumA =「% Test7%'「;

百分號是否應該像這樣匹配?您可能知道,百分號是mysql中的通配符,它​​應該與LIKE一起使用而不是等號。

在這種情況下,您的條件將爲:WHERE collumA LIKE '%Test7%'