【发布时间】:2011-02-02 07:11:39
【问题描述】:
我在使用 SQL 的 ORDER BY 部分中的参数时遇到问题。它不会发出任何警告,但不会打印任何内容。
$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();
:my_param 有效,但 :order 或 :direction 无效。它没有在内部正确转义吗?我是否将其直接插入 SQL 中?像这样:
$order = 'columnName';
$direction = 'ASC';
$stmt = $db->prepare("SELECT * from table WHERE column = :my_param ORDER BY $order $direction");
是否有 PDO::PARAM_COLUMN_NAME 常量或等价物?
谢谢!
【问题讨论】: