【发布时间】:2013-11-17 22:23:12
【问题描述】:
我是新的 PHP 5 mysqli 的新手,但我已经用老式的方式做了很多工作。
这是我的代码
$query = "SELECT `id`, `catn`, `name`, `name_en`, `image`, `price`, `old_price`, `cat` FROM `products` WHERE `show` = 'Yes'";
if (!empty($order)) {
$params[0] = $params[0] . "s";
$query = $query . " ORDER BY ? ".$way;
$params[] = $order;
}
$stmt = $this->db->prepare($query);
if (strnatcmp(phpversion(),'5.3') >= 0) //Reference is required for PHP 5.3+
{
$refs = array();
foreach($params as $key => $value)
$refs[$key] = &$params[$key];
}
if ($stmt) {
call_user_func_array(array($stmt, 'bind_param'), $refs);
$stmt->execute();
... more code below
$way 变量始终为 ASC 或 DESC。但是查询给了我按 id 排序的结果(就像没有 ORDER BY 语句一样)。所以查询写在bind_param 之前所以我猜参数没有正确绑定?你能告诉我哪里出错了
【问题讨论】:
标签: php mysql mysqli sqlbindparameter