Не ли в коде PHP чего-то лишнего?

Поиск

$query='SELECT h1 FROM post WHERE h1 LIKE :search';
	$stmt= $pdo->prepare($query);
	$stmt->execute(array(':search' => '%'.$searchVal.'%'));
	while ($news = $stmt->fetch(PDO::FETCH_LAZY)){

Главная страница вывода постов

$result0 = $pdo->prepare('SELECT * FROM post ORDER BY id DESC LIMIT '.$start.', '.$num.'');
	$result0->execute();
	while ($news = $result0->fetch(PDO::FETCH_LAZY)){

Страница тегов

$tag = $pdo->prepare('SELECT * FROM post WHERE hashtag1 = ? OR hashtag2 = ? OR hashtag3 = ? OR hashtag4 = ? ORDER BY id DESC');
	$tag->execute(array($hashtag1, $hashtag2, $hashtag3, $hashtag4));
	while ($news = $tag->fetch(PDO::FETCH_LAZY)){


PS не судите строго
  • Вопрос задан
  • 226 просмотров
Пригласить эксперта
Ответы на вопрос 3
miraage
@miraage
Старый прогер
В целом, приятно видеть, что люди используют PDO, а не mysql_query.
Глазик не дергался от ужаса. Вроде, все отлично.
Остального не видел, но убедитесь, что у вас разделена логика от представления.
Ответ написан
Комментировать
@dmitryKovalskiy
программист средней руки
Несколько пугает текст "страница тегов,поиска". Не должно быть на страницах представлений и разметки - sql. Ни в каком виде. Только вызов методов класса, внутри которых уже могут прятаться запросы в бд. Ну и не привыкайте к звездочке. При использовании join появится много мусора. Так же рекомендую оградить доступ к бд до уровня "только хранимые процедуры". Поддержка sql-кода станет попроще. Перепишете хранимку, а приложение останется нетронутым
Ответ написан
Комментировать
okwinza
@okwinza
PHP Developer
1) В первом и втором фрагментах не юзаются prepared statements.
2) Вместо прямой работы с PDO попробуйте нормальный DBAL, например doctrine/dbal
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽