とても簡単だと思いますが、例が見つかりませんでした。
ユーザーのログインをログに記録するためにLaravelアプリケーションで流暢を使用しているため、独自の認証ドライバーを作成しましたが、生データと未生データが混在する流暢なクエリに問題があります。次を見てください。
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 が言うように、見栄えが悪い場合はフレームワークに含まれていないので、ここで何が欠けているのか知りたいのです。