php - 带有 PDO PHP 的 mysql_real_escape_string

标签 php mysql pdo

你好,我是 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/

相关文章:

php - 表单提交未将数据输入数据库

php - 将文件保存为数据库中的 blob ajax php pdo

php - 使用 PDO 防止 SQL 注入(inject)

php - 同时 PHP 数据库查询

php - 如何从记录具有与另一个表最相似属性的表中选择记录

php - 如何在 ng-bind 中显示选项值?

php - 连接数组以插入mysql表中

php - 如何仅从登录的用户数据中搜索搜索输入中的列?

javascript - 如何使用 AJAX 和 PHP 生成 .doc

mysql - 如何在 MySql 或 PostgreSql 中搜索电话号码,忽略破折号、括号和空格?