下面的代码应该能够删除car
和ProNumber='$searchTerm'
的表ProCode ='$searchTerm1'
中的一行,但事实并非如此。非常感谢任何帮助。
<?php
$searchTerm = trim($_GET['keyname']);
$searchTerm1 = trim($_GET['codename']);
//create a database connection
mysql_connect("localhost","root","") or die("Error:".mysql_error());
mysql_select_db("products");
//Delete the record
$updateQuery = "DELETE FROM car WHERE ProNumber = '$searchTerm' AND ProCode ='$searchTerm1'";
mysql_query($updateQuery) or die("Error: ".mysql_error());
?>
请注意,表格和列均已创建并填充了相应的数据
更新:
这个问题的答案的以下部分是什么解决了它
Mysql vs Mysqli功能
答案 0 :(得分:1)
列类型
请确保您的列类型正确无误。如果你将数据包装成这样的引号'1234'
,mysql会将数据解释为string
,不加引号将其写成,它将被解释为integer
。
WHERE column = 1234
列上的 integer
WHERE column = '1234'
列上的varchar
SQL注入
请在传递变量之前使用直接进入sql语句teh php mysqli_real_escape_string
函数,以防止SQL Injections
http://php.net/manual/en/mysqli.real-escape-string.php
Mysql vs Mysqli函数
在PHPmysql_*
中不推荐使用 5.5.0
函数,您应该使用mysqli_*
函数来确保您的脚本适用于较新的PHP版本。
http://php.net/manual/en/book.mysqli.php
逻辑错误
确保要删除的数据存在于Mysql数据库中
答案 1 :(得分:1)
数据库连接出错,在未设置数据库连接之前无法删除记录
//create a database connection
mysql_connect("localhost","root","") or die("Error:".mysql_error());
mysql_select_db("products");
Change above code to this
$connection = mysql_connect("localhost","root","") or die("Error:".mysql_error());
mysql_select_db("products",$connection);
答案 2 :(得分:0)
只是一个猜测,但您可能遇到的一个问题是$searchTerm
周围有单引号。你搜索一个数字,但你传递一个字符串。
可能的解决方法(请注意$searchTerm
中缺少单引号):
$updateQuery = "DELETE FROM car WHERE ProNumber = $searchTerm AND ProCode = '$searchTerm1'";