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