你好,我是 PDO 的新手,所以感到困惑和错误 ;) 使用 mysql_real_escape_string ..
谁能帮忙,这是我的代码
if(!empty($_POST) && isset($_POST)) {
include ('connection_pdo.php');
$dbh = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
$source_url= mysql_real_escape_string($_POST['source_url']);
$class = mysql_real_escape_string($_POST['class']);
$year = mysql_real_escape_string($_POST['year']);
$date = time();
$ip = $_SERVER['REMOTE_ADDR'];
$insert = $dbh->prepare("
INSERT IGNORE INTO school_students_images
( folder_name, image_url, source_url, class, year , date , ip )
VALUES (:folder_name, :image_url, :source_url, :class, :year, :date, :ip)
");
$a=0;
while ($a<1000){
$a++;
$insert->execute(array(
'folder_name'=> $name->content, //** geting from other source
'image_url' => $link[$a], //** geting from other source
'source_url' => $source_url,
'class' => $class ,
'year' => $year ,
'date' => $date,
'ip' => $ip
));
}
它不工作得到错误,但如果我在没有使用它的情况下使用它
$source_url= ($_POST['source_url']);
$class = ($_POST['class']);
$year = ($_POST['year']);
$date = time();
$ip = $_SERVER['REMOTE_ADDR'];
它正在工作...所以我很困惑在没有 mysql_real_escape_string 的情况下 POST 到数据库是否安全? (默认情况下 PDO 是否提供任何安全性?)或者我在这方面犯了一些错误...... 请帮忙
最佳答案
是的,PDO 自动转义你的数据,所以你不需要使用mysql_real_escape_string
。参见 here , 例如。
关于php - 带有 PDO PHP 的 mysql_real_escape_string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10750377/