雄弁なORM laravel5 PDO ODBC接続を使用してすべてのユーザーを取得するためのクエリを実行しようとしています。
$email = "myemail@domain.com";
$data = Users::where('email',$email)->get();
このエラーが発生します
"SQLSTATE[42000]: Syntax error or access violation: 402 [FreeTDS][SQL Server]The data types varchar and text are incompatible in the equal to operator. (SQLExecute[402] at /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_php/php56-odbc/work/php-5.6.19/ext/pdo_odbc/odbc_stmt.c:254) (SQL: select * from \"Users\" where \"email\" = 'myemail@domain.com')"
ご覧のとおり、FreeTDS を使用して SQL Server に接続していますが、このドライバーに追加の構成が必要なのか、laravel コアを変更する必要があるのかわかりません。
このエラーの主な問題は、 と を囲むバックスラッシュと\"Users\" and \"email\"
引用符です。この引用符を削除する方法と、laravel がこれを行っている理由を教えてください。Users
email
ただし、これを試してみると
$sql = "SELECT * FROM $this->table WHERE email = 'myemail@domain.com'";
$return = DB::select(DB::raw($sql));
それは完全に機能しますが、これはlaravelでクエリを作成するためのより良い方法ではないと思います.
ご参考までに
Mac OS X EL Capitan、MAMP Server、php 5.6.10、pdo-odbcでlaravel 5を使用しています