警告:mysql_real_escape_string():用户''@ localhost'拒绝访问(使用密码:否)

时间:2013-07-25 22:42:27

标签: php mysql forms

何时使用以下代码而不使用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);
 ?> 

5 个答案:

答案 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()

之前,必须先连接数据库