次のクエリがあります。
Yii::app()->dbNav->createCommand()
->select('*')
->from('dbo Spectrum Geo Limited$Purch_ Inv_ Header')
->where('"Log Number" = :id', array(':id'=>$_GET['lognumber']))
->queryRow();
そして、次のエラーで失敗しています:
CDbCommand failed to execute the SQL statement: SQLSTATE[HY000]: General error: 20018 Invalid object name 'dbo'. [20018] (severity 5) [(null)]. The SQL statement executed was: SELECT *
FROM [dbo] [Spectrum Geo Limited$Purch_ Inv_ Header]
WHERE "Log Number" = :id
私の dblib 接続は mssql で動作します。以下をyiiに変換しようとしています
$sql="SELECT * FROM [Spectrum Geo Limited\$Purch_ Inv_ Header] WHERE [Log Number] = $q ";
Management studio では、必要な結果を得るために次を実行します。
SELECT TOP 1000 *
FROM [Navision].[dbo].[Spectrum Geo Limited$Purch_ Inv_ Header]
where [Log Number] = 4593
以下は機能しますが、これは理想的な方法ですか?
Yii::app()->dbNav->createCommand("SELECT * FROM [Spectrum Geo Limited\$Purch_ Inv_ Header] WHERE [Log Number] = ".$_GET['lognumber'] );
さらに遠く
私が次のことをしたら
Yii::app()->dbNav->createCommand()
->select('*')
->from('[dbo].[Spectrum Geo Limited$Purch_ Inv_ Header]')
->where('"Log Number" = :id', array(':id'=>$_GET['lognumber']))
->queryRow();
次のエラーが表示されます。
CDbCommand failed to execute the SQL statement: SQLSTATE[HY000]: General error: 20018 Unclosed quotation mark after the character string 'Geo Limited$Purch_ Inv_ Header]
WHERE "Log Number" = '4593''. [20018] (severity 5) [(null)]. The SQL statement executed was: SELECT *
FROM [[dbo]].[[Spectrum] [Geo Limited$Purch_ Inv_ Header]]
WHERE "Log Number" = :id
今私は試しました:
Yii::app()->dbNav->createCommand()
->select('*')
->from('[Spectrum Geo Limited$Purch_ Inv_ Header]')
->where('"Log Number" = :id', array(':id'=>$_GET['lognumber']))
->queryRow();
エラーで:
CDbCommand failed to execute the SQL statement: SQLSTATE[HY000]: General error: 20018 Unclosed quotation mark after the character string 'Geo Limited$Purch_ Inv_ Header]
WHERE "Log Number" = '4593''. [20018] (severity 5) [(null)]. The SQL statement executed was: SELECT *
FROM [[Spectrum] [Geo Limited$Purch_ Inv_ Header]]
WHERE "Log Number" = :id
where句を削除すると、次のエラーが発生します。
CDbCommand failed to execute the SQL statement: SQLSTATE[HY000]: General error: 20018 Unclosed quotation mark after the character string 'Geo Limited$Purch_ Inv_ Header]'. [20018] (severity 5) [(null)]. The SQL statement executed was: SELECT *
FROM [[Spectrum] [Geo Limited$Purch_ Inv_ Header]]