<?php
//Connect to DB
$dbcnx = @mysql_connect("$db_host", $db_user, "$db_password");
if (!$dbcnx) {
echo( "<P>Unable to connect to the " .
"database server at this time.</P>" );
exit();
}
mysql_select_db("daily_audit", $dbcnx);
// Request the text of all the hosts
if(!empty($_POST['checklist'])) {
foreach($_POST['checklist'] as $check) {
$result = mysql_query(
"DELETE FROM hosts_list WHERE IP_Address = %s ", $check);
if (!$result) {
echo("<P>Error performing query: " .
mysql_error() . "</P>");
exit();
}
}
}
?>
我遇到运行以下代码的问题。我已经确认_POST变量包含数据,但我很确定我的SQL查询是如何处理的。对不起,我是PHP n00b,我想了解如何纠正这个问题。我知道查询可能需要''围绕IP地址,这使得这个棘手。在此先感谢所有人。
答案 0 :(得分:5)
mysql_query
函数无法格式化字符串。
您可能正在考虑sprintf()
:
$query = sprintf("DELETE FROM hosts_list
WHERE IP_Address = %s", mysql_real_escape_string($check));
$result = mysql_query($query);
答案 1 :(得分:1)
mysql_query()
无法格式化您的查询。
您可能正在寻找sprintf()
:
$result = mysql_query(
sprintf("DELETE FROM hosts_list WHERE IP_Address = %s ", $check) );
请注意,您的代码容易受到SQL注入攻击。在数据库查询中使用之前,应始终清理用户输入。更好的是,切换到MySQLi / PDO并使用预处理语句。