何时使用以下代码而不使用mysql_real_escape_string,工作正常。我只是试图抓住可能有背道的文本字符串。从输入表单并格式化它放入mysql表。
<?php
$filenamee = $_FILES["file"]["name"];
$filename =strval($filenamee);
echo "file name is".$filename;
$con=mysqli_connect("localhost","blasbott_admin","lubu1973","blasbott_upload");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$companyName = mysql_real_escape_string($_POST['companyName']);
// $companyName = mysql_real_escape_string($companyNamee);
//$companyName = mysql_real_escape_string($companyNamee);
$sql="INSERT INTO ads (companyName, webSite, picture)
VALUES ('$companyName','$_POST[webSite]','$filename')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo"<br>";
echo "1 record added";
mysqli_close($con);
?>
答案 0 :(得分:9)
不,你不应该混合使用mysql和mysqli。
使用此处代替mysql_real_escape_string($var)
:
$con->real_escape_string($var);
答案 1 :(得分:6)
您有遭受MySQL注入的风险。不首先在没有某种投影的情况下直接将数据插入数据库。这是一个重大的安全风险。另请使用mysqli_real_escape_string,并注意您的$ _POST [webSite]不受保护。
此外,您的错误意味着您的数据库详细信息不正确。
答案 2 :(得分:1)
此处提供了一个解决此问题的工作代码示例:
http://www.w3schools.com/php/func_mysqli_real_escape_string.asp
答案 3 :(得分:0)
请尝试mysqli_real_escape_string
。
答案 4 :(得分:0)
在使用Warning:mysql_real_escape_string()
之前,必须先连接数据库