我的共享网络主机在查询准备方面存在一些问题,我想启用PDO的模拟准备,$result = mysql_query("SELECT * FROM table WHERE title_1 ='$title_1' ");
if( mysql_num_rows($result) > 0) {
mysql_query("UPDATE table SET column = '$value' WHERE title_1 = '$title_1' ");
}
else
{
mysql_query("INSERT INTO table (title_1) VALUES ('$title_1') ");
}
中没有此选项。
我有什么方法可以在Laravel中做到这一点吗?
答案 0 :(得分:5)
您可以添加“options”数组,以便在config / database.php中为数据库连接添加选项:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
// Additional options here
'options' => [PDO::ATTR_EMULATE_PREPARES => true, PDO::MYSQL_ATTR_COMPRESS => true,]
],
你会看到我也为我的连接打开了MYSQL_ATTR_COMPRESS。
您可以在此处找到有关其内置选项的更多信息:
https://github.com/laravel/framework/blob/master/src/Illuminate/Database/Connectors/Connector.php