当我在html表单中发布内容时,例如在名字字段中,我输入:
'John', i am getting the following error:
查询错误:。
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Smith',Address_Line_1='rtuy657tr',Address_Line_2='',City='leicester',Postcode='L' at line 1
我知道它与mysql_real_escape_string ()
函数有关,但我如何使用它来插入数据库。我已经启动了这个功能:
function db_insert_preparation(){
}
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("project1", $con);
这是需要使用的地方:
$sql2 = "INSERT INTO `".$table_name."` (`Group`, `Date_Of_Birth`, `Gender`, `Title`, `First_Name`, `Last_Name`, `Address_Line_1`, `Address_Line_2`, `City`, `Postcode`, `Contact_No`, `Email`, `Additional_Comment`, `Upload_File`) VALUES ('".db_insert_preparation($group)."','".$_POST[dateofbirth]."','".$_POST[gender]."','".$_POST[title]."','".$_POST[firstname]."','".$_POST[lastname]."','".$_POST[address1]."','".$_POST[address2]."','".$_POST[city]."','".$_POST[postcode]."','".$_POST[contactno]."','".$_POST[email]."','".$_POST[note]."','".$filename."' )";
答案 0 :(得分:1)
SQL insert语句易受SQL注入攻击。如果其中一个POST值包含双引号"
或换行符,则语句会损坏并出现语法错误。确保您逃脱用户提供的mysql_real_escape_string()
。
答案 1 :(得分:0)
在mysql_real_escape_string($_POST[firstname'])
上使用mysql_real_escape_string函数。事实上,在将所有帖子变量传递给SQL之前,请对它进行操作。