我在表单上有一个名为filter1的字段,我希望能够将引用的文本保存到mysql中。所以我希望能够保存值“foo bar”...而不是保存只是/
这就是我所拥有的:
$keyword1 = mysql_real_escape_string($_POST['filter1']);
感谢任何帮助。
以下是我构建查询的方法
$keyword1 = mysql_real_escape_string($_POST['filter1']);
$keyword2 = $_POST['filter2'];//."|".$_POST['filterby'];
$keyword3 = $_POST['filter3'];//."|".$_POST['filterby2'];
$urlfilter1 = $_POST['url1'];
$urlfilter2 = $_POST['url2'];//."|".$_POST['url_filter'];
$urlfilter3 = $_POST['url3'];//."|".$_POST['url_filter2'];
//echo "combo_id:".$num." <BR></br>";
//echo "status:".$status." <BR></br>";
//echo "saveQuery:".$saveQuery." <BR></br>";
//$myFilter = "save";
$insert_query = sprintf("UPDATE COMBINATION
SET STATUS_ID=%s, QUERY=\"%s\",
KEYWORD1=\"%s\", KEYWORD2=\"%s\", KEYWORD3=\"%s\",
URLFILTER1=\"%s\", URLFILTER2=\"%s\", URLFILTER3=\"%s\"
WHERE COMBINATION_ID=%s",$status,$saveQuery,
$keyword1,$keyword2,$keyword3,
$urlfilter1,$urlfilter2,$urlfilter3,
$num);
//echo "insert_query:".$insert_query." <BR></br>";
$result = mysql_query($insert_query) or die(mysql_error());
if($result)
{
echo "Saved successfully<br>";
}
} ?&GT;
答案 0 :(得分:10)
除非您有一个非常古老且受限制的环境,use PDO。它将为您节省汗水和泪水。 With PDO it is very easy to escape input and avoid SQL injection attacks, which is illustrated in the answer that this link leads to。
答案 1 :(得分:1)
首先,您需要使用mysql_connect()
http://php.net/manual/en/function.mysql-connect.php
然后,您需要使用mysql_query()
http://php.net/manual/en/function.mysql-query.php
顺便说一句,在将字符串放入查询之前,你通过转义字符串做了正确的事情,做得好:)
答案 2 :(得分:0)
由于某种原因,您只转义了一个变量,同时向查询中添加了几个变量 你为什么不逃避它们?
但是,您的问题可能在其他地方。 什么是$ saveQuery我很好奇?