我在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);
?>
答案 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%'