Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Yii createCommand запрос с Like как использовать


Автор: Sanchezzz 30.9.2012, 11:40
Чет меня разочаровал совсем фреймворк ебаного велосипедизма с пытаюсь сделать запрос с LIKE и тут тебе облом c LIKE % он не понимает как будто обрезает.
Сам запрос он приметивный
Код

    $pdo = Yii::app()->db;
    $sql = "SELECT * FROM `company` WHERE `company_name` like :company_name ";
    $command = $pdo->createCommand($sql);
    $execute = array(":company_name" => '%'.$name.'%'   );
    $rows = $command->queryAll( $execute );    

Чет документацию смотрю негде не могу найти решения в стили pdo

Автор: Sentox 30.9.2012, 11:51
Не правильно создаётся конструкция. Используй или чистый PDO или конструктор самого фрейма. В чистой PDO нужно использовать bindParam.(http://www.yiiframework.com/doc/guide/1.1/ru/database.dao)
http://www.yiiframework.com/doc/guide/1.1/ru/database.query-builder
Там есть пример и с like.

Автор: ksnk 30.9.2012, 11:56
http://www.php.net/manual/en/pdostatement.bindparam.php#99698
?

Автор: Sanchezzz 30.9.2012, 11:59
Да я уже решил тока напишешь вопрос и находишь решение как в старом добром PDO через CONCAT
Код

$pdo = Yii::app()->db;
$sql = "SELECT * FROM `company` WHERE `company_name` like CONCAT('%', :company_name, '%')";
$command = $pdo->createCommand($sql);
$command->bindParam(":company_name",$name,PDO::PARAM_STR);    
return    $command->queryAll();


Пойду смотреть ссылки которые вы мне скинули))

Добавлено @ 12:03
Sentox, Я смотрел QBS но я решил изначально придерживается синтаксису запросов в духе PDO.

Добавлено @ 12:05
ksnk , Вчера побывал не получалось наверное я спал)) 

Автор: Sentox 30.9.2012, 12:03
Я бы конечно использовал бы ActiveRecord к таблицам. Мощный механизм для работы с данными, а так же позволяет хорошо писать тесты к ним.

Автор: Sanchezzz 30.9.2012, 12:16
ActiveRecord я потестил удобно но просто некоторые вещи не могу туда завязать может от нехватки знаний по фреймвору и я решил по старинке использовать то к чему привык PDO.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)