работа с pdo

phillip

Полезный
Регистрация
4 Сен 2007
Сообщения
411
Реакции
15
Начал юзать PDO, один момент непонятный...
В коде у меня есть такой момент что в зависимости от переменной, sql будет различный. Ну вот допустим

PHP:
$query = "SELECT * FROM `objects` WHERE `ownerid`='".$id."'";
if($freeze!='all') $query.=" AND `freeze`='".$freeze."'";
Таким образом, в зависимости от $freeze строка может принимать два вида
PHP:
"SELECT * FROM `objects` WHERE `ownerid`='4'
PHP:
"SELECT * FROM `objects` WHERE `ownerid`='4'  AND `freeze`='2'
дак вот в pdo если я сделаю
PHP:
$STH->execute(array(':ownerid' => $id,':freeze' => $freeze));
то работать верно не будет. надо писать вот так
PHP:
if($freeze!='all') 
$STH->execute(array(':ownerid' => $id,':freeze' => $freeze)); 
else
$STH->execute(array(':ownerid' => $id));
то есть в $STH->execute надо передавать массив с переменными для запроса, и если запрос то у меня меняется, то и $STH->execute я должен переписывать в зависимости от условий каждый раз. Без pdo мне делать этого не приходилось
А что если у меня sql будет меняться очень сильно, мне все это описывать надо. Вообщем надеюсь поняли в чем беда (( Кто как делает, подскажите
 
дык можно переписать как-то так

PHP:
$data = array(':ownerid' => $id);

if($freeze!='all')  $data[':freeze'] =  $freeze

$STH->execute ( $data );
и тогда нет особой разнице, конкатенировать строку по условию? или наполнять массив...
 
Назад
Сверху