gpt4 book ai didi

php - 使用表来参数化 PDO 中的列/表名称

转载 作者:行者123 更新时间:2023-11-29 19:10:50 25 4
gpt4 key购买 nike

不可能use parameters to describe column or table names in PDO .

例如:

CREATE TABLE ? (id INT(6) PRIMARY KEY AUTO_INCREMENT, ...)

如何使用临时表来处理恶意数据,然后将其反馈到语句中?

$hex = bin2hex(random_bytes(8));
$stmt = $db->prepare('INSERT INTO tmpdata (value,hex) VALUES (:val,:hex)');
$stmt->execute(array(
":val" => $_POST['catname'],
":hex" => $hex
));
$stmt = $db->prepare('SELECT value FROM tmpdata WHERE hex=?');
$stmt->execute(array($hex));
$row = $stmt->fetchAll(PDO::FETCH_ASSOC);
$cleaned_value = $row[0]['value'];

这是一种可以接受且更重要的是安全的将列名和表名参数输入 PDO 的方法吗?

最佳答案

一点也没有。

如果你拿起装有毒药的瓶子并喝下它,你就会死。
是什么让您认为在饮用前将其存放在橱柜中会使其无害?

更直接地针对您的问题,您应该永远不要根据用户输入创建表格。不是因为任何危险,而是因为理智。您的数据库设计应该是可靠和静态的,一次性制作,并且仅由管理员偶尔更改。

因此,您现在最关心的是学习数据库设计基础知识。

关于php - 使用表来参数化 PDO 中的列/表名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43095446/

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