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的实时应用程序中工作。
答案 0 :(得分:2)
如果您SELECT LEFT(content,10)
,则结果集中的列名称将为&#34; LEFT(内容,10)&#34;,因此您需要以$post->{'LEFT(content,10)'}
的形式访问数据。为避免这种情况,请给它一个别名:
SELECT LEFT(content,10) AS content ...