国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Jadual Kandungan
Ditulis di hadapan
Pakar meng-Google orang itu
Rumah rangka kerja php Laravel Bagaimana untuk mengemas kini berbilang rekod dalam laravel (menghalang suntikan SQL)

Bagaimana untuk mengemas kini berbilang rekod dalam laravel (menghalang suntikan SQL)

Aug 23, 2021 pm 02:48 PM
laravel php

Lajur tutorial Laravel berikut akan memperkenalkan kepada anda cara mengemas kini berbilang rekod dalam laravel, yang boleh menghalang suntikan SQL saya harap ia akan membantu rakan yang memerlukan!

Ditulis di hadapan

Semua orang yang biasa dengan laravel tahu bahawa laravel mempunyai Berbilang rekod dimasukkan dalam kelompok pada satu masa, tetapi berbilang rekod tidak dikemas kini secara bersyarat pada satu masa.

Adakah anda iri hati dengan update_batch thinkphp saveAll dan ci, tetapi mengapa laravel yang elegan itu tidak mempunyai kaedah kemas kini kelompok yang serupa?

Pakar meng-Google orang itu

dan mendapati seseorang telah menulis pada stackoverflow (https://stackoverflow.com/questions/26133977/laravel-bulk-update) Baiklah, tetapi ia tidak menghalang suntikan sql.

Artikel ini telah dilaraskan bersama dengan laravel's Eloquent untuk mencegah suntikan sql dengan berkesan.

<?php
namespace App\Models;

use DB;
use Illuminate\Database\Eloquent\Model;

/**
 * 學(xué)生表模型
 */
class Students extends Model
{
    protected $table = &#39;students&#39;;

    //批量更新
    public function updateBatch($multipleData = [])
    {
        try {
            if (empty($multipleData)) {
                throw new \Exception("數(shù)據(jù)不能為空");
            }
            $tableName = DB::getTablePrefix() . $this->getTable();?//?表名
????????????$firstRow??=?current($multipleData);

????????????$updateColumn?=?array_keys($firstRow);
????????????//?默認(rèn)以id為條件更新,如果沒(méi)有ID則以第一個(gè)字段為條件
????????????$referenceColumn?=?isset($firstRow['id'])???'id'?:?current($updateColumn);
????????????unset($updateColumn[0]);
????????????//?拼接sql語(yǔ)句
????????????$updateSql?=?"UPDATE?"?.?$tableName?.?"?SET?";
????????????$sets??????=?[];
????????????$bindings??=?[];
????????????foreach?($updateColumn?as?$uColumn)?{
????????????????$setSql?=?"`"?.?$uColumn?.?"`?=?CASE?";
????????????????foreach?($multipleData?as?$data)?{
????????????????????$setSql?.=?"WHEN?`"?.?$referenceColumn?.?"`?=???THEN???";
????????????????????$bindings[]?=?$data[$referenceColumn];
????????????????????$bindings[]?=?$data[$uColumn];
????????????????}
????????????????$setSql?.=?"ELSE?`"?.?$uColumn?.?"`?END?";
????????????????$sets[]?=?$setSql;
????????????}
????????????$updateSql?.=?implode(',?',?$sets);
????????????$whereIn???=?collect($multipleData)->pluck($referenceColumn)->values()->all();
????????????$bindings??=?array_merge($bindings,?$whereIn);
????????????$whereIn???=?rtrim(str_repeat('?,',?count($whereIn)),?',');
????????????$updateSql?=?rtrim($updateSql,?",?")?.?"?WHERE?`"?.?$referenceColumn?.?"`?IN?("?.?$whereIn?.?")";
????????????//?傳入預(yù)處理sql語(yǔ)句和對(duì)應(yīng)綁定數(shù)據(jù)
????????????return?DB::update($updateSql,?$bindings);
????????}?catch?(\Exception?$e)?{
????????????return?false;
????????}
????}
}

boleh dilaraskan mengikut keperluan anda sendiri Berikut adalah contoh penggunaan:

//?要批量更新的數(shù)組
$students?=?[
????['id'?=>?1,?'name'?=>?'張三',?'email'?=>?'zhansan@qq.com'],
????['id'?=>?2,?'name'?=>?'李四',?'email'?=>?'lisi@qq.com'],
];

//?批量更新
app(Students::class)->updateBatch($students);

Pernyataan SQL yang dihasilkan adalah seperti berikut:

UPDATE?pre_students
SET?NAME?=?CASE
WHEN?id?=?1?THEN
????'張三'
WHEN?id?=?2?THEN
????'李四'
ELSE
????NAME
END,
?email?=?CASE
WHEN?id?=?1?THEN
????'zhansan@qq.com'
WHEN?id?=?2?THEN
????'lisi@qq.com'
ELSE
????email
END
WHERE
????id?IN?(1,?2)
Adakah ia cekap? Ia telah banyak bertambah baik~

Cadangan berkaitan:

Lima tutorial video Laravel terbaharu

Atas ialah kandungan terperinci Bagaimana untuk mengemas kini berbilang rekod dalam laravel (menghalang suntikan SQL). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1502
276
Penalaan Prestasi Pemetaan Objek (ORM) di PHP Penalaan Prestasi Pemetaan Objek (ORM) di PHP Jul 29, 2025 am 05:00 AM

Elakkan masalah pertanyaan n 1, mengurangkan bilangan pertanyaan pangkalan data dengan memuatkan data yang berkaitan terlebih dahulu; 2. Pilih hanya medan yang diperlukan untuk mengelakkan memuat entiti lengkap untuk menjimatkan memori dan jalur lebar; 3. Gunakan strategi cache yang munasabah, seperti cache sekunder doktrin atau hasil pertanyaan frekuensi tinggi Cache; 4. Mengoptimumkan kitaran hayat entiti dan panggilan jelas () secara teratur untuk membebaskan memori untuk mengelakkan limpahan memori; 5. Memastikan indeks pangkalan data wujud dan menganalisis penyata SQL yang dihasilkan untuk mengelakkan pertanyaan yang tidak cekap; 6. Lumpuhkan penjejakan perubahan automatik dalam senario di mana perubahan tidak diperlukan, dan gunakan array atau mod ringan untuk meningkatkan prestasi. Penggunaan ORM yang betul memerlukan menggabungkan pemantauan SQL, caching, pemprosesan batch dan pengoptimuman yang sesuai untuk memastikan prestasi aplikasi sambil mengekalkan kecekapan pembangunan.

VSCODE SETTINGS.JSON Lokasi VSCODE SETTINGS.JSON Lokasi Aug 01, 2025 am 06:12 AM

Fail Tetapan.JSON terletak di laluan peringkat pengguna atau ruang kerja dan digunakan untuk menyesuaikan tetapan vscode. 1. Laluan peringkat pengguna: Windows adalah C: \ Users \\ AppData \ Roaming \ code \ user \ settings.json, macOS adalah /users//library/applicationsupport/code/user/settings.json, linux adalah/ 2. Laluan Tahap Ruang Kerja: .VSCODE/Tetapan dalam Direktori Root Projek

Membina objek yang tidak berubah di PHP dengan sifat bacaan Membina objek yang tidak berubah di PHP dengan sifat bacaan Jul 30, 2025 am 05:40 AM

ReadonlypropertiesinPHP8.2canonlybeassignedonceintheconstructororatdeclarationandcannotbemodifiedafterward,enforcingimmutabilityatthelanguagelevel.2.Toachievedeepimmutability,wrapmutabletypeslikearraysinArrayObjectorusecustomimmutablecollectionssucha

Bagaimana untuk melaksanakan sistem rujukan di Laravel? Bagaimana untuk melaksanakan sistem rujukan di Laravel? Aug 02, 2025 am 06:55 AM

Buat jadual rujukan untuk merekodkan hubungan cadangan, termasuk rujukan, rujukan, kod cadangan dan masa penggunaan; 2. Tentukan hubungan dan hubungan hasmany dalam model pengguna untuk menguruskan data cadangan; 3. Menjana kod cadangan yang unik semasa mendaftar (boleh dilaksanakan melalui peristiwa model); 4. Menangkap kod cadangan dengan menanyakan parameter semasa pendaftaran, mewujudkan hubungan cadangan selepas pengesahan dan mencegah penyimpanan diri; 5. mencetuskan mekanisme ganjaran apabila pengguna yang disyorkan melengkapkan tingkah laku yang ditentukan (urutan langganan); 6. Menjana pautan cadangan yang boleh dikongsi, dan gunakan URL tandatangan Laravel untuk meningkatkan keselamatan; 7. Statistik cadangan paparan di papan pemuka, seperti jumlah cadangan dan nombor yang ditukar; Adalah perlu untuk memastikan kekangan pangkalan data, sesi atau kuki berterusan,

CSS Dark Mode Togol Contoh CSS Dark Mode Togol Contoh Jul 30, 2025 am 05:28 AM

Pertama, gunakan JavaScript untuk mendapatkan pilihan sistem pengguna dan tetapan tema yang disimpan di dalam negara, dan memulakan tema halaman; 1. Struktur HTML mengandungi butang untuk mencetuskan Topik Switching; 2. CSS menggunakan: Root untuk menentukan pembolehubah tema yang cerah, kelas mod-mode mentakrifkan pembolehubah tema gelap, dan menggunakan pembolehubah ini melalui VAR (); 3. JavaScript mengesan lebih suka skema-skema dan membaca LocalStorage untuk menentukan tema awal; 4. Tukar kelas mod gelap pada elemen HTML apabila mengklik butang, dan menjimatkan keadaan semasa ke LocalStorage; 5. Semua perubahan warna disertakan dengan animasi peralihan 0.3 saat untuk meningkatkan pengguna

Pengoptimuman prestasi java dan teknik profil Pengoptimuman prestasi java dan teknik profil Jul 31, 2025 am 03:58 AM

Gunakan alat analisis prestasi untuk mencari kesesakan, gunakan VisualVM atau JProfiler dalam peringkat pembangunan dan ujian, dan memberi keutamaan kepada async-profiler dalam persekitaran pengeluaran; 2. Mengurangkan penciptaan objek, menggunakan semula objek, gunakan StringBuilder untuk menggantikan splicing rentetan, dan pilih strategi GC yang sesuai; 3. Mengoptimumkan penggunaan koleksi, pilih dan preset kapasiti awal mengikut tempat kejadian; 4. Mengoptimumkan keserasian, gunakan koleksi serentak, mengurangkan granulariti kunci, dan tetapkan kolam benang dengan munasabah; 5. Tune Parameter JVM, tetapkan saiz timbunan yang munasabah dan pemungut sampah rendah dan membolehkan log GC; 6. Elakkan refleksi di peringkat kod, ganti kelas pembalut dengan jenis asas, penangguhan permulaan, dan gunakan akhir dan statik; 7. Ujian dan Pemantauan Prestasi Berterusan, digabungkan dengan JMH

Bagaimana membina API REST dengan Laravel? Bagaimana membina API REST dengan Laravel? Jul 30, 2025 am 03:41 AM

Buat projek Laravel baru dan mulakan perkhidmatan; 2. Menjana model, penghijrahan dan pengawal dan jalankan penghijrahan; 3. Tentukan laluan RESTful dalam Laluan/API.PHP; 4. Melaksanakan kaedah tambahan, penghapusan, pengubahsuaian dan pertanyaan dalam postcontroller dan mengembalikan respons JSON; 5. Gunakan postman atau curl untuk menguji fungsi API; 6. Pilihan menambah pengesahan API melalui Sanctum; Akhirnya dapatkan struktur yang jelas, Laravelrestapi yang lengkap dan boleh diperpanjang, sesuai untuk aplikasi praktikal.

Menggunakan PHP untuk mengikis data dan automasi web Menggunakan PHP untuk mengikis data dan automasi web Aug 01, 2025 am 07:45 AM

UseGuzzleforrobustHTTPrequestswithheadersandtimeouts.2.ParseHTMLefficientlywithSymfonyDomCrawlerusingCSSselectors.3.HandleJavaScript-heavysitesbyintegratingPuppeteerviaPHPexec()torenderpages.4.Respectrobots.txt,adddelays,rotateuseragents,anduseproxie

See all articles