【发布时间】:2013-07-26 01:18:50
【问题描述】:
什么时候使用下面没有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);
?>
【问题讨论】:
-
我经常看到这类问题,你应该阅读common database debugging for PHP and MySQL。
-
这些是您实际的数据库连接详细信息吗?
-
您是否考虑过使用准备好的语句而不是转义 $_POST 数据?您正在尝试转义 companyName,但随后您直接将 Posting['website'] 放入您的查询中。
-
没有实际值;只是愚弄当地人,直到我建造出实际的东西。我会看看准备好的陈述。我知道的不多,但是有人警告过我有关 mysql 注入的事情。谢谢你的帮助;爱这里的人。
-
谢谢 Jason,我确实首先阅读了一些关于此的帖子。将 mysqli_real_escape_string 与 mysql_real_escape_string 混合是一个新手错误,但我很高兴我做到了并了解了 mysql 注入,南海岸网络引导我准备好声明,thx south