这个PHP插入是否安全?

时间:2015-06-25 13:58:31

标签: php mysqli sql-injection

我一直在研究一个小脚本来将数据插入到数据库中,但我不太确定它是否安全。一些反馈会很酷!所以我的问题是,这是一种插入数据的安全方式吗?

CODE:

function dbRowInsert($table, $data) {
   require_once('../config.inc.php');

     $buildData = null;
     $countLoop = 1;

     foreach($data as $field) {
          $sep = ($countLoop!=count($data) ? ',' : '') ;
      if((int)$field == $field) {
        $buildData .= (int)$field . $sep;
      } else {
        $buildData .= '"' .mysqli_real_escape_string((string)$field) . '"' . $sep;
      }
      $countLoop++;
     }

   $fields = array_keys($data);

   mysqli_query($conn, "INSERT INTO" . $table . "(`" . implode('`, `', $fields) . "`)
                        VALUES('" . $buildData . "')");
}

1 个答案:

答案 0 :(得分:2)

最好的方法是使用面向对象的风格。那是第一次。第二是使用方法

prepare(), bind(), execute()

而不是

mysqli_real_escape_string()

在手册中阅读它,它很简单,你会发现它非常有用和安全。

http://php.net/manual/en/mysqli.prepare.php