Запрос типа insert

Добрый вечер.

Скажи пожалуйста, как выполнить обычный sql запрос.

Т.е. мне приходит переменная $s_query которая содержит в себе примерно следующие :




INSERT INTO catalog_products (collid, forid, typeid, mask, art, id1c, size, box, color, price) VALUES ('5', '2', '8','0','08-0-3','00000003104','22-27','','текст','1380');INSERT INTO catalog_products (collid, forid, typeid, mask, art, id1c, size, box, color, price) VALUES ('5', '2', '8','0','08-13-3','00000003117','22-27','','текст','1400');INSERT INTO catalog_products (collid, forid, typeid, mask, art, id1c, size, box, color, price) VALUES ('5', '2', '8','0','019-01-4','00000005731','22-27','','текст','1380');



Как выполнить такой запрос??

В Coideigniter это делалось просто


$this->db->query($s_query);

Как быть в Yii ?

И еще вопросик:

Почему не работает такая конструкция :


$sql = "INSERT INTRO cart (uid, pid, number, size) VALUES (:uid, :pid, :number, :size)"; 


            $command = Yii::app()->db->createCommand($sql);

            $command->bindParam(":uid",   $uid,           PDO::PARAM_STR);

            $command->bindParam(":pid",   $_POST['pid'],  PDO::PARAM_STR);

            $command->bindParam(":number",$_POST['box'],  PDO::PARAM_STR);

            $command->bindParam(":size",  $_POST['size'], PDO::PARAM_STR);

            $command->execute();

Как я понял с других форумов, такого способа нет в Yii.

Надо использовать стандартный способ php&mysql

На мой взгляд, конструкция





Yii::app()->db->createCommand($sql)->execute();

довольно схожа с конструкцией CI, пускай даже внешне.

Отлично работает такая конструкция (реальный пример из одного работающего проекта):


	$client=$_GET['client'];

	$account=$_GET['account'];

	$bank = $_GET['bank'];

	

	Yii::app()->db->createCommand(

		"INSERT INTO `cmr_accounts`

		(`client`, `account_num`, `bank`) VALUES ('{$client}', '{$account}', '$bank')")->execute();

	echo Yii::app()->db->lastInsertID;

Кошмар, по-моему, вы на SQL Injection просто нарываетесь :(

Во-первых, GETы как источник данных ненадежны, тем более вообще без валидации

Во-вторых, прямая вставка данных в SQL скрипт может не работать, а еще хуже просто вредить…

Для примера $account="’#1234567" вызовет ошибку SQL

WBR,

S.

Как вариант должно работать так


Yii::app()->db->createCommand(

  "INSERT INTO cmr_accounts

  (client, account_num, bank) VALUES (:client, :account, :bank)")

  ->execute(array('client'=>$client, 'account'=>$account, 'bank'=>bank));