Intereting Posts
как изменить URL-адрес метода GET для очистки URL-адреса в php? array_unique для массивов внутри массива CodeIgniter не работает с многоуровневыми подпапками для обоих контроллеров и представлений Как вернуть мою базу данных на wamp sever? php cors oauth2 проблемы с авторизацией на предъявителя Как автоматически перенаправить пользователя в Symfony после таймаута сеанса? Уничтожьте или отмените сеанс, когда пользователь закроет браузер, не нажимая на logout как проверить специальные символы php HTML5 Audio Element "src = get.php не может пропустить позицию Как установить базовый URL-адрес в Yii Framework Как передать переменные jQuery в переменную PHP? TCPNF getNumLines () иногда ошибочен Как перемещаться по всем пикселям изображения? AngularJS – перенаправление страницы на другую страницу в угловых js при попытке получить параметр из url Запуск нескольких cURL в фоновом режиме с помощью PHP

Разница между исходными SQL-функциями Laravel

Кажется, я не единственный человек, который борется с различиями между методами DB: raw (), DB :: select (), DB :: statement () и DB :: unprepared (). Кажется, что почти нужно попробовать задание SQL со всеми 4 для определения того, что будет работать. Может ли кто-нибудь разъяснить, как они соотносятся друг с другом и какие использовать для каких целей?

Related of "Разница между исходными SQL-функциями Laravel"

Я попытаюсь уточнить:

DB :: сырец ()

Он генерирует необработанную и дезинфицированную строку SQL, которая должна быть передана другим запросам / операторам, предотвращая инъекции SQL. Используется со всеми и никогда в одиночку. И вы никогда не должны отправлять строку, не очищенную в ваши запросы / заявления.

DB::select(DB::raw('select * from whatever')); 

DB :: выберите ()

Для простых выборов:

 DB::select(DB::raw('select * from whatever')); 

DB :: оператор ()

Я думаю, что он работает с выборами, но должен использоваться для команд запроса не SQL:

 DB::statement(DB::raw('update whatever set valid = true;')); 

DB :: неподготовленной ()

Все команды SQL в Laravel подготовлены по умолчанию, но иногда вам нужно выполнить команду в неподготовленном режиме, так как некоторые команды в некоторой базе данных не могут запускаться в подготовленном режиме. Вот проблема, которую я открыл об этом: https://github.com/laravel/framework/issues/53

 DB::unprepared(DB::raw('update whatever set valid = true;'));