在将 SQL 用于准备好的语句的数据访问对象中,我有几个字符串,其中初始化了 SQL 和绑定变量。其中之一是
private $insertQuestionSql = "
INSERT IGNORE INTO bgt.question_models (nodeId, questionId, parentId, state, version,
questionText, userResponseText)
VALUES (NID, QID, PID, ST, V, QT, URT)";
该语句与 DAO 函数在同一个类中声明和使用
public function createQuestion(QuestionTemplateModel $qt) {
//create database connection and initialize transaction
$connection = Yii::app()->db;
$transaction = $connection->beginTransaction();
try {
$command = $connection->createCommand($this->insertQuestionSql);
在 Yii 中,$connection
是一个实例,并通过函数CDbConnection
返回一个实例。CDbCommand
createCommand
由于我在类中访问这个属性,我应该能够访问字符串变量。为什么这里没有发生?
完整的错误是
"Unknown property 'insertQuestionSql' for class 'QuestionDAOTest'."
无论发生这种行为
- 更改 SQL 字符串
- 删除第一个换行符
此外,删除$this->
结果会导致undefined variable: insertQuestionSql
错误。尽管将访问修饰符更改为public
andprotected