相关疑难解决方法(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万
查看次数

如何使用动态表名防止SQL注入?

我和一个声誉很高的PHP人讨论过这个问题:

PDO在这里没用.以及mysql_real_escape_string.质量极差.

这当然很酷,但老实说我不知道​​建议使用mysql_real_escape_string或PDO修复此代码有什么问题:

<script type="text/javascript">
    var layer;

    window.location.href = "example3.php?layer="+ layer;

    <?php
        //Make a MySQL connection
        $query = "SELECT Category, COUNT(BUSNAME)
          FROM ".$_GET['layer']." GROUP BY Category";
        $result = mysql_query($query) or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)

进入这个

$layer = mysql_real_escape_string($_GET['layer']);
$query = "SELECT Category, COUNT(BUSNAME)
FROM `".$layer."` GROUP BY Category";
Run Code Online (Sandbox Code Playgroud)

,考虑到JavaScript代码在客户端发送.

php sql-injection

20
推荐指数
2
解决办法
3950
查看次数

标签 统计

php ×2

pdo ×1

sql-injection ×1