0

我的控制器中有以下代码,插入查询没有发生。我正在使用 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...";

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

下面的甲酸盐正在努力插入我的桌子。并将查询记录到 postgresql 日志中。

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

提前致谢。

4

2 回答 2

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...";
于 2013-09-18T06:30:40.567 回答
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...";
于 2013-09-18T06:35:04.240 回答