Можно ли в 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.
если ты SELECT LEFT(content,10)
тогда имя столбца в наборе результатов будет «ВЛЕВО (контент, 10)», поэтому вам нужно будет получить доступ к данным как $post->{'LEFT(content,10)'}
, Чтобы избежать этого, укажите псевдоним:
SELECT LEFT(content,10) AS content ...
Других решений пока нет …