返回PDO限制字符?

时间:2014-09-16 14:06:30

标签: php mysql pdo

PDO中是否可以限制字符返回?我尝试以下操作,但无论我在LEFT中放入哪个字段,它都不会返回结果集,但在这种情况下,查询的其余部分将按预期返回id和title。我错过了什么吗?

    $sql = "SELECT LEFT(content,10), id, title FROM posts";
    $query = $this->db->prepare($sql);
    $query->execute();

所以我通过控制器加载我的模型(上图),如下所示:

    $posts_model = $this->loadModel('PostsModel');
    $posts = $posts_model->getAllPosts();

然后在我看来,我如此回应结果:

<?php foreach ($posts as $post) { ?>
<tr>
    <td><h3><?php if (isset($post->title)) echo $post->title; ?></h3></td>
    <td><?php if (isset($post->content)) echo $post->content; ?></td>
</tr>

不确定这是否有帮助?就像我说我可以切换标题和内容,它会回显它只是不会回应SQL语句的LEFT部分中的列。我已经在PHPMYAdmin中尝试了原始的mysql查询,它返回的数据正如我所期望的那样,不会在使用PDO的实时应用程序中工作。

1 个答案:

答案 0 :(得分:2)

如果您SELECT LEFT(content,10),则结果集中的列名称将为&#34; LEFT(内容,10)&#34;,因此您需要以$post->{'LEFT(content,10)'}的形式访问数据。为避免这种情况,请给它一个别名:

SELECT LEFT(content,10) AS content ...