删除MySQL行

时间:2017-03-24 14:44:57

标签: php mysql sql

我在ubuntu 16.10上使用PHP 7和最新的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);

?>

6 个答案:

答案 0 :(得分:0)

应更改为以下查询

DELETE FROM databasetable WHERE collumA like '%Test7%'

=like运算符

之间存在差异

答案 1 :(得分:0)

假设您尝试删除collumA包含测试&#34; Test7&#34;的所有行,您需要使用like运算符,而不是{{1运营商:

=

答案 2 :(得分:0)

如果要使用通配符%,则必须使用LIKE而不是=,因此请将sql更改为:

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

此外,mysql函数容易受到sql注入攻击,您应该使用mysqli甚至更好PDO来管理数据库。

答案 3 :(得分:0)

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

应该 columnA喜欢&#39;%test7%&#39;

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

喜欢和=都是different

答案 4 :(得分: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);

?>

有时,您必须引用列

前面的数据库表

答案 5 :(得分:0)

对我来说,使用此功能完成的目标并不是很清楚:WHERE collumA =&#39;%Test7%&#39;&#34; ;

百分号是否符合这样的文字?您可能知道,百分号是mysql中的通配符,它​​应该与LIKE一起使用而不是相等。

在这种情况下,您的条件为:WHERE collumA LIKE '%Test7%'