5

When is use the following code without mysql_real_escape_string, works fine. I simply trying to grab a text string that may have apost. from an input form and format it to put in mysql table.

    <?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);
 ?> 
4

5 回答 5

9

不,你不应该混合使用 mysql 和 mysqli。

在这里使用而不是mysql_real_escape_string($var)

$con->real_escape_string($var);
于 2013-07-25T22:46:21.627 回答
6

您面临 MySQL 注入的风险。切勿在没有先进行某种投影的情况下将数据直接插入数据库。这是一个重大的安全风险。也使用 mysqli_real_escape_string 代替,并注意你的 $_POST[webSite] 是不受保护的。

此外,您的错误意味着您的数据库详细信息不正确。

于 2013-07-25T23:51:19.163 回答
2

在使用警告之前必须先连接数据库:mysql_real_escape_string()

于 2014-12-24T12:36:51.433 回答
2

此处提供了一个可以解决此问题的工作代码示例:

http://www.w3schools.com/php/func_mysqli_real_escape_string.asp

于 2015-02-25T18:05:50.807 回答
0

试试mysqli_real_escape_string吧。

于 2013-07-25T22:50:06.363 回答