相关疑难解决方法(0)

PHP PDO语句可以接受表名或列名作为参数吗?

为什么我不能将表名传递给准备好的PDO语句?

$stmt = $dbh->prepare('SELECT * FROM :table WHERE 1');
if ($stmt->execute(array(':table' => 'users'))) {
    var_dump($stmt->fetchAll());
}
Run Code Online (Sandbox Code Playgroud)

是否有另一种安全的方法将表名插入SQL查询?安全我的意思是我不想这样做

$sql = "SELECT * FROM $table WHERE 1"
Run Code Online (Sandbox Code Playgroud)

php pdo

232
推荐指数
5
解决办法
7万
查看次数

PHP PDO - 绑定表名?

是否可以绑定表名?

我想创建一个类来读取表中的列,并根据字段类型为我生成表单输入.当我这样做时$form = new form("users");,构造函数应该从使用以下代码从表中获取字段名称开始:

class form{

    public function __construct($table, $skip = array("id")){
        $pdo = new PDO('mysql:host=localhost;dbname=site;',USER,PASS);

        $query = $pdo->prepare("DESCRIBE :table");

        $query->bindValue(':table', $table, PDO::PARAM_STR, strlen($table));

        $query->execute();

        while($field = $query->fetch(PDO::FETCH_NUM)){
            var_dump($field);
            echo "<br /><br />";
        }

        unset($pdo);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我在prepare语句中指定"users"而不是":table"时,这很好用,但绑定它正在工作,我很确定这是因为它试图绑定一个表名.此外,这需要绑定,因为我希望能够通过我的表名传递$_GET等等.

php pdo

11
推荐指数
1
解决办法
1万
查看次数

标签 统计

pdo ×2

php ×2