小编Mar*_*orn的帖子

如何使用准备好的PDO语句设置ORDER BY参数?

我在ORDER BYSQL 的部分使用params时遇到问题.它不会发出任何警告,但不打印任何内容.

$order = 'columnName';
$direction = 'ASC';

$stmt = $db->prepare("SELECT field from table WHERE column = :my_param ORDER BY :order :direction");
$stmt->bindParam(':my_param', $is_live, PDO::PARAM_STR);
$stmt->bindParam(':order', $order, PDO::PARAM_STR);
$stmt->bindParam(':direction', $direction, PDO::PARAM_STR);
$stmt->execute();
Run Code Online (Sandbox Code Playgroud)

:my_param作品,但没有:order:direction.是不是在内部正确转义?我是不是直接插入SQL?像这样:

$order = 'columnName';
$direction = 'ASC';

$stmt = $db->prepare("SELECT * from table WHERE column = :my_param ORDER BY $order $direction");
Run Code Online (Sandbox Code Playgroud)

PDO::PARAM_COLUMN_NAME常数还是等价?

谢谢!

php mysql pdo

33
推荐指数
4
解决办法
5万
查看次数

标签 统计

mysql ×1

pdo ×1

php ×1