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. Я пробовал необработанный запрос MySQL в PHPMYAdmin, и он возвращает данные, как я ожидаю, просто не будет работать в живом приложении, использующем PDO.

0

Решение

если ты SELECT LEFT(content,10)тогда имя столбца в наборе результатов будет «ВЛЕВО (контент, 10)», поэтому вам нужно будет получить доступ к данным как $post->{'LEFT(content,10)'}, Чтобы избежать этого, укажите псевдоним:

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]