我有一个名为“privatemessage”的MySQL表,其主键字段名为“messageid”。
我想有一个PHP查询删除“privatemessage”中的任何行,其中“messageid = $ messageid”。
这是什么类型的查询?
提前致谢,
约翰
答案 0 :(得分:4)
DELETE FROM `privatemessage` WHERE `messageid` = $messageid
这只是原始的SQL查询。当然应该考虑验证和逃避用户输入等事情。
例如,给定messageid
作为AUTO_INCREMENT
整数主键,我只需在PHP中运行它(使用$messageid
将intval()
转换为int):
mysql_query('DELETE FROM `privatemessage` WHERE `messageid` = ' . intval($messageid));
答案 1 :(得分:2)
您可能希望使用预准备语句,因此您可以放心使用SQL注入...
$conn = new mysqli($host, $user, $password, $database);
if ($conn->connect_error) {
die('could not connet to database.');
}
$statement = $conn->prepare("DELETE FROM privatemessage WHERE messageid = ?");
$statement->bind_param("messageid", $messageid);
$statement->execute();
答案 2 :(得分:1)
$query = "DELETE FROM `privatemessage` WHERE `messageid` = '$messageid'";
mysql_query($query);
但首先,请检查$messageid
是否为数字(请参阅SQL Injection)。