繁体   English   中英

PHP array_map()和mysqli_real_escape_string()

[英]PHP array_map() and mysqli_real_escape_string()

我想清除所有数据,然后将它们发送到数据库(在每个数据库连接中)

if(!get_magic_quotes_gpc()) {
    $_GET = array_map('mysqli_real_escape_string', $_GET);
    $_POST = array_map('mysqli_real_escape_string', $_POST);
    $_COOKIE = array_map('mysqli_real_escape_string', $_COOKIE);
 }

上面的代码给我下面的错误error

mysqli_real_escape_string() expects exactly 2 parameters, 1 given

有谁知道实现此目标的更好方法?

之所以出现错误,是因为您使用的是mysqli_real_escape_string而不是mysqli_real_escape_string($connection,$_POST['data'])它需要的两个参数。 mysqli_real_escape_string()可以使用,但是如果您想安全地进行sql injection ,则应该使用PDO prepare statement参见下面的插入查询。

$prov_id = $_POST['prov_id'];
$practice_name = $_POST['prov_id'];

$connection = new PDO("mysql:host=xxxx;dbname=xxxx;", "xxxx", "xxxx"); //database connection
 $statement = $connection->prepare('INSERT INTO practices(prov_id,practice_name) VALUES (:prov_id,:practice_name)');

        $statement->bindParam(':prov_id', $prov_id);
        $statement->bindParam(':practice_name', $practice_name_data);
        // etc.

        $statement->execute();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM