Yii查询执行

时间:2013-09-18 06:23:49

标签: php yii

我的控制器中有以下代码,插入查询没有发生。  我正在使用postgresql作为数据库。

 $connection = Yii::app()->db2 ;
 $command1 = "INSERT INTO USERS (username, user_type) VALUES (:username,:user_type)";
 $cmd1 = $connection->createCommand($command1);
 $cmd1->bindParam(":username",$username,PDO::PARAM_STR);
 $cmd1->bindParam(":user_type",'USER',PDO::PARAM_STR);
 $cmd1->execute();
 echo "Completed...";

代码中有什么问题。 echo“已完成...”; 未打印。我已启用我的postgressql日志,不执行插入查询。浏览器中不显示错误,只显示空白页。

下面的甲酸盐正在插入我的表格。并将查询记录到postgresql日志中。

$command->insert('users', array(
                                              'username'=>$username,
                                              'user_type'=>'USER',
                                              ));

先谢谢。

2 个答案:

答案 0 :(得分:4)

尝试使用' bindValue()'代替'bindParam()':

$connection = Yii::app()->db2 ;
 $command1 = "INSERT INTO USERS (username, user_type) VALUES (:username,:user_type)";
 $cmd1 = $connection->createCommand($command1);
 $cmd1->bindValue(":username",$username,PDO::PARAM_STR);
 $cmd1->bindValue(":user_type",'USER',PDO::PARAM_STR);
 $cmd1->execute();
 echo "Completed...";

答案 1 :(得分:1)

您不必绑定值'USER',您可以直接在查询中编写它:

 $connection = Yii::app()->db2 ;
 $command1 = "INSERT INTO USERS (username, user_type) VALUES (:username,'USER')";
 $cmd1 = $connection->createCommand($command1);
 $cmd1->bindParam(":username",$username,PDO::PARAM_STR);
 $cmd1->execute();
 echo "Completed...";