【问题标题】:PDO where + order byPDO where + order by
【发布时间】:2014-07-30 16:32:15
【问题描述】:

您好,我正在尝试从 PDO 中具有给定首字母的表中提取名称列表,并按 ASC 对其进行排序,但得到空数组。

include('core/engine/login.php');
$con = new PDO('mysql:host=localhost;dbname=database', $dbuser, $dbpassword);
$row = $con->prepare("SELECT title FROM ".$dbprefix."anime WHERE title= :title: ORDER BY title ASC");
$row->bindParam(':title', $aniprefix, PDO::PARAM_STR);
$row->execute();
$results = $row->fetchAll(PDO::FETCH_COLUMN);

} catch(PDOException $ex) {
}

谢谢

【问题讨论】:

  • 问题是?错误是什么?尝试过?偷偷摸摸的代码丢失不是我的一杯茶。

标签: php mysql pdo sql-order-by


【解决方案1】:

需要指出的几个问题。

  • 在 SQL 文本中,绑定参数占位符以冒号开头,但不要以冒号结尾。

  • 相等比较运算符 (=) 进行精确比较。要查找部分匹配,您可以使用LIKE 比较运算符。例如,要查找具有title 且第一个字符为'T' 的所有行,您可以使用诸如title LIKE 'T%' 之类的谓词。请注意,在 LIKE 的上下文中,'%' 是匹配零个、一个或多个任意字符的通配符。

【讨论】:

    【解决方案2】:
    $row = $con->prepare("SELECT title FROM ".$dbprefix."anime WHERE title LIKE :title ORDER BY title ASC");
    $row->bindParam(':title', $aniprefix.'%', PDO::PARAM_STR);
    

    【讨论】:

    • @Lal 好点,我建议 OP 看到 spencer7593 的答案以获得解释。我不能打败它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-05
    相关资源
    最近更新 更多