Windows Azure に SQL データベースがあり、ローカル マシンに Yii アプリがあります。PHP 5.4.9 とphp_pdo_sqlsrv_54_nts.dll
ドライバーを使用しています。
Main.php:
'db'=>array(
'connectionString' => 'sqlsrv:Server=tcp:MYSERVER.database.windows.net,1433;Database=MYDB;',
'username' => 'admin',
'password' => 'pass',
'charset' => 'utf8',
),
SQL Server Yii に接続しようとすると、次の例外がスローされます。
CDbCommand failed to execute the SQL statement: SQLSTATE[42S02]: [Microsoft][SQL Server Native Client 11.0][SQL Server]Invalid object name 'sys.extended_properties'.. The SQL statement executed was: SELECT t1.*, columnproperty(object_id(t1.table_schema+'.'+t1.table_name), t1.column_name, 'IsIdentity') AS IsIdentity, CONVERT(VARCHAR, t2.value) AS Comment FROM [INFORMATION_SCHEMA].[COLUMNS] AS t1 LEFT OUTER JOIN sys.extended_properties AS t2 ON t1.ORDINAL_POSITION = t2.minor_id AND object_name(t2.major_id) = t1.TABLE_NAME AND t2.class=1 AND t2.class_desc='OBJECT_OR_COLUMN' AND t2.name='MS_Description' WHERE t1.TABLE_NAME='users' AND t1.TABLE_SCHEMA='dbo'
Gii またはページ上に単純な<?php echo User::model()->findAllByPk(1)->email;?>
文字列で表示されます。
私は何を間違っていますか?
UPD: User.php
class User extends CActiveRecord {
public static function model($className = __CLASS__)
{
return parent::model($className);
}
public function tableName()
{
return 'users';
}
public function rules()
{
return array(
array('email, password', 'required')
);
}
public function attributeLabels()
{
return array(
'id' => 'ID',
'email' => 'Email'
);
}
}
テーブルには、およびフィールドusers
のみが含まれます。id
email
password
このコードは機能します!
$connection=Yii::app()->db;
$sql = "INSERT INTO users (email, password) VALUES ('regs@kamenskynik.name', 'example')";
$command=$connection->createCommand($sql);
$some = $command->execute();
Yii Active Record で SQLSRV を使用するには?