gpt4 book ai didi

php - 如何使用 PDO 避免 mysql 注入(inject)

转载 作者:行者123 更新时间:2023-12-01 00:13:32 25 4
gpt4 key购买 nike

如何避免mysql注入(inject)?这是我现在拥有的 PHP 文件

<?php
include 'config.php';

$Name = $_GET['Name'] ;

$sql = "Select * from tables where names =\"$Name\"";



try {
$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
$dbh->query('SET CHARACTER SET utf8');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $dbh->query($sql);
$names = $stmt->fetchAll(PDO::FETCH_OBJ);
$dbh = null;
echo '{"key":'. json_encode($names) .'}';
} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}


?>

当我输入 $stmt = $dbh->query($sql); $stmt->execute(array(':name' => $name)); 到它不起作用的代码。那我应该怎么做呢?

最佳答案

了解 pdo prepared statements

举个例子

$stmt = $dbh->prepare("SELECT * FROM tables WHERE names = :name");
$stmt->execute(array(':name' => $name));

关于php - 如何使用 PDO 避免 mysql 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10929047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com