我確定它非常簡單,但我找不到任何示例。如何使用Laravel的流利的查詢生成器混合原始SQL和非原始數據
我在我的Laravel應用程序中使用流暢的功能來記錄我的用戶登錄,所以我創建了自己的auth驅動程序,但是我遇到了混合原始數據而沒有原始數據的流暢查詢的問題,請看以下內容:
DB::table('logins')->insert(array(
'login_email' => $arguments['email'],
'login_date' => DB::raw('UNIX_TIMESTAMP(NOW())'),
'login_ip'=> DB::raw('INET_ATON('.$_SERVER['REMOTE_ADDR'].')'),
'login_result' => (bool)$success
));
這會導致:
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@gmail.com, UNIX_TIMESTAMP(NOW()), INET_ATON(127.0.0.1), ?)' at line 1
SQL: INSERT INTO `cs_logins` (`login_email`, `login_date`, `login_ip`, `login_result`) VALUES (?, UNIX_TIMESTAMP(NOW()), INET_ATON(127.0.0.1), ?)
Bindings: array (
0 => false,
)
,所以我做了以下內容:
DB::table('logins')->insert(array(
'login_email' => DB::raw("'".$arguments['email']."'"),
'login_date' => DB::raw('UNIX_TIMESTAMP(NOW())'),
'login_ip'=> DB::raw('INET_ATON('.$_SERVER['REMOTE_ADDR'].')'),
'login_result' => DB::raw((bool)$success)
));
但是,正如Dayle Rees所說,如果它看起來很醜,它不在框架中......所以我想知道我在這裏失去了什麼。
+1 tnx的信息,我購買和閱讀Dayle Rees的教程,我認爲Fluent似乎更容易開始,我認爲主要是因爲他使用了更多的流利的例子,並且還顯示了他們如何輕鬆地使用數據透視表。你認爲雄辯是要走的路嗎?雄辯有相同的簡單語法來輕鬆地檢索,更新和刪除多個連接的多個表? – Neo
btw我在我的庫文件夾中創建了一個auth驅動程序如何從庫中訪問我的登錄模型,我的登錄模型是Login並擴展了Eloquent。 – Neo
雄辯是絕對要走的路。它對所有操作都有相同的,簡單的合成器。大多數操作都相當流暢。 'User :: where_name('simon') - > order_by('last_name') - > get()'''''如何使用雄辯來檢索數據。唯一真正的區別是User ::',否則它看起來很相似,對吧? :)檢查文檔以獲取更多信息,這很容易學習。 – aebersold