Katakan selamat tinggal kepada pertanyaan SQL yang membosankan! Memudahkan operasi pangkalan data dengan fluentpdo
Adakah anda bosan menulis pertanyaan SQL juga? Terutama apabila masa adalah ketat. Jika anda seperti saya, hari ini kita akan belajar alat yang sangat sejuk: fluentpdo. Jika anda tidak biasa dengan istilah "PDO", jangan risau. Ia adalah konsep yang sangat mudah: Di dunia PHP, PDO bermaksud objek data yang berterusan, yang membantu anda abstrak beberapa operasi pangkalan data asas (seperti penyisipan, kemas kini, memadam, dll.). Ia adalah lapisan abstraksi antara anda dan pangkalan data.
apa hasilnya? Tidak perlu lagi menulis pertanyaan SQL! Ini mungkin bukan projek pertama yang pernah anda lihat: Terdapat banyak projek yang serupa di pasaran, masing -masing dengan ciri -ciri utamanya. Ciri utama Fluentpdo adalah pembina pertanyaannya yang kuat.
mata utama
- fluentpdo adalah pembina pertanyaan php SQL yang abstrak operasi pangkalan data asas tanpa menulis pertanyaan SQL. Ciri utamanya ialah pembina pertanyaan yang kuat.
- Pemasangan fluentpdo dilakukan melalui komposer tanpa sebarang konfigurasi tambahan. INTEGANIATE Objek PDO dengan meluluskannya sebagai parameter kepada pembina objek FluentPDO.
- FluentPDO menyediakan sintaks mudah dan mudah dibaca untuk operasi pilih asas, termasuk kaedah untuk menetapkan jadual, hasil penapis, dan menentukan pengendali perbandingan. Ia juga membolehkan pemilihan bidang tertentu, menetapkan had dan parameter mengimbangi, dan menggunakan kumpulan yang mempunyai, oleh, dan memerintahkan dengan arahan.
- FluentPDO juga menyokong operasi data menggunakan kelas operasi Insert, Update, dan Delete. Operasi ini memerlukan kaedah pelaksanaan () untuk menjalankan pertanyaan dan menukar pangkalan data.
- Ciri-ciri canggih FluentPDO termasuk pembina pertanyaan gabungan (kod memudahkan pertanyaan gabungan) dan sistem debugger terbina dalam (untuk ujian dan pemeriksaan pertanyaan).
projek ujian fluentpdo kami
Pertama, kita memerlukan projek sampel untuk melakukannya. Mari kita fikirkan ... Bagaimana dengan senarai keinginan berbilang pengguna yang mudah?
Akan ada banyak pengguna, dan setiap pengguna mempunyai produk kegemaran mereka sendiri. Bagi setiap pengguna, kami akan menyimpan nama pertama mereka, nama belakang dan tarikh pendaftaran. Bagi setiap item, kami akan menyimpan namanya, jenama, harga dan ID pengguna yang berkaitan.
Saya akan menggunakan pangkalan data MySQL yang mudah. Berikut adalah struktur data kami:
CREATE TABLE IF NOT EXISTS items ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(100) NOT NULL, brand varchar(100) NOT NULL, price decimal(10,2) NOT NULL, user_id int(10) unsigned NOT NULL, PRIMARY KEY (id), KEY user_id (user_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; INSERT INTO items (id, name, brand, price, user_id) VALUES (1, 'Last Awesome Phone', 'Awesome Brand', '550.00', 1), (2, 'Last Awesome TV', 'Awesome Brand', '1200.00', 1), (3, 'Fantastic E-Car', 'E-Cars Inc.', '80000.00', 2), (4, 'Fantastic E-Bike', 'E-Bikes Co. Ltd.', '16000.00', 2); CREATE TABLE IF NOT EXISTS users ( id int(10) unsigned NOT NULL AUTO_INCREMENT, first_name varchar(100) NOT NULL, last_name varchar(100) NOT NULL, signup_date datetime NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3; INSERT INTO users (id, first_name, last_name, signup_date) VALUES (1, 'Francesco', 'Malatesta', '2014-06-29 13:00:00'), (2, 'John', 'Foo Bar', '2014-06-20 11:16:39'); ALTER TABLE items ADD CONSTRAINT items_ibfk_1 FOREIGN KEY (user_id) REFERENCES users (id);Nota: Seperti yang anda boleh bayangkan dengan mudah, ini bukan projek "lengkap". Kami hanya mencuba Fluentpdo, jadi kami tidak akan melindungi perkara seperti log masuk, pendaftaran, atau struktur permohonan.
Pemasangan
anda boleh memasang fluentpdo menggunakan komposer dan memasukkannya sebagai kebergantungan:
"require": { ... "lichtner/fluentpdo": "dev-master" }Apabila anda selesai, anda perlu memberi contoh seperti ini:
CREATE TABLE IF NOT EXISTS items ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(100) NOT NULL, brand varchar(100) NOT NULL, price decimal(10,2) NOT NULL, user_id int(10) unsigned NOT NULL, PRIMARY KEY (id), KEY user_id (user_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; INSERT INTO items (id, name, brand, price, user_id) VALUES (1, 'Last Awesome Phone', 'Awesome Brand', '550.00', 1), (2, 'Last Awesome TV', 'Awesome Brand', '1200.00', 1), (3, 'Fantastic E-Car', 'E-Cars Inc.', '80000.00', 2), (4, 'Fantastic E-Bike', 'E-Bikes Co. Ltd.', '16000.00', 2); CREATE TABLE IF NOT EXISTS users ( id int(10) unsigned NOT NULL AUTO_INCREMENT, first_name varchar(100) NOT NULL, last_name varchar(100) NOT NULL, signup_date datetime NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3; INSERT INTO users (id, first_name, last_name, signup_date) VALUES (1, 'Francesco', 'Malatesta', '2014-06-29 13:00:00'), (2, 'John', 'Foo Bar', '2014-06-20 11:16:39'); ALTER TABLE items ADD CONSTRAINT items_ibfk_1 FOREIGN KEY (user_id) REFERENCES users (id);
anda mesti menentukan butiran sambungan anda dalam kaedah pembina PDO. Dalam parameter pertama, taipkan nama pangkalan data anda selepas bahagian DBName =, dan tulis nama pengguna dan kata laluan anda sebagai parameter kedua dan ketiga.
Anda kemudian lulus objek PDO sebagai parameter kepada pembina objek FluentPDO.
itu sahaja, Fluentpdo tidak memerlukan apa -apa lagi untuk berfungsi. Tiada konfigurasi tambahan diperlukan.
Operasi Pilih Asas
Kami sudah mempunyai beberapa data maya. Mari kita mulakan dengan "Hello World" pertanyaan SQL. Pilihan mudah dengan klausa WHERE dan ID utama utama pengguna sebagai parameter untuk mendapatkan maklumat asas.
"require": { ... "lichtner/fluentpdo": "dev-master" }
tidak ada yang sukar difahami di sini. Fluentpdo mempunyai sintaks yang baik dan mudah dibaca, jadi mudah untuk memahami apa yang kita lakukan.
Kaedahdari () digunakan untuk menetapkan jadual yang betul. Kaedah di mana () digunakan untuk menapis hasil kami dengan klausa nama yang sama. Secara lalai, dalam kaedah WHERE () anda hanya menentukan nama dan nilai medan. "=" adalah tersirat. Sudah tentu, anda juga boleh menggunakan pengendali perbandingan yang berbeza. Dalam kes ini, anda perlu menulisnya selepas nama medan.
$pdo = new PDO("mysql:dbname=wishlist", "root", "password"); $fpdo = new FluentPDO($pdo);
Mendapatkan hasilnya sangat mudah: mereka disimpan dalam objek $ pertanyaan yang kami gunakan. Anda boleh melangkah ke atasnya menggunakan gelung foreach seperti yang ditunjukkan dalam contoh.
Dalam kes khusus ini (mencari item dengan ID utama utama), kita juga boleh menggunakan pintasan dalam kaedah dari ():
$user_id = 1; $query = $fpdo->from('users')->where('id', $user_id); foreach($query as $row){ echo 'Hello, ' . $row['first_name'] . ' ' . $row['last_name'] . '!'; }
mari kita lihat sesuatu yang lebih rumit daripada ini.
Pilih medan tertentu
Jika anda mahu, anda boleh menggunakan kaedah pilih () selepas dari () untuk memilih. Anda hanya perlu menggunakan array untuk memberitahu Fluentpdo medan yang anda mahu pilih.
ini adalah contoh:
$fpdo->from('items')->where('price >', 1000);
had dan mengimbangi
Menetapkan parameter had dan mengimbangi untuk mengambil hanya sebilangan baris dari pangkalan data adalah sangat mudah. Anda boleh menggunakan kaedah had () dan mengimbangi () seperti ini.
$query = fpdo->from('users', $user_id); // 将与...相同 $query = $fpdo->from('users')->where('id', $user_id);
Satu -satunya hujah untuk kedua -dua kaedah ini adalah integer yang menentukan nilai yang diperlukan (untuk had (), ia adalah bilangan item; untuk mengimbangi (), ia adalah bilangan item yang akan dilangkau).
mempunyai, kumpulan dan memerintahkan oleh
Kaedah juga disediakan untuk arahan "mempunyai", "oleh" dan "pesanan dengan".
mari kita lihat mereka dengan beberapa contoh.
Pesanan oleh
KaedahorderBy () digunakan untuk menyusun hasil mengikut keadaan tertentu. Mari memberi contoh: Inilah cara menyusun keputusan dengan harga (dari murah hingga mahal).
$query = $fpdo->from('users')->select(array('first_name', 'last_name'))->where('id', $user_id);
Jika anda ingin membalikkan pesanan (dapatkan hasil dari yang paling mahal kepada yang paling murah), tambahkan "DESC" selepas lajur yang dipilih.
// 选择前十个结果... $query = $fpdo->from('users')->where('id', $user_id)->limit(10)->offset(0);
Mempunyai
Kaedahmempunyai () mempunyai sintaks yang sangat mudah. Dalam contoh di bawah, kami menapis setiap item yang berharga kurang daripada $ 2,000.
$query = $fpdo->from('items')->orderBy('price');
sangat sederhana.
anda boleh menggunakan mana -mana pengendali perbandingan yang anda mahukan.
Kumpulan oleh
Gunakan kaedah GroupBy (), anda boleh mengumpulkan hasil menggunakan medan tertentu sebagai syarat. Di sini kita memaparkan kuantiti produk untuk setiap jenama.
CREATE TABLE IF NOT EXISTS items ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(100) NOT NULL, brand varchar(100) NOT NULL, price decimal(10,2) NOT NULL, user_id int(10) unsigned NOT NULL, PRIMARY KEY (id), KEY user_id (user_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; INSERT INTO items (id, name, brand, price, user_id) VALUES (1, 'Last Awesome Phone', 'Awesome Brand', '550.00', 1), (2, 'Last Awesome TV', 'Awesome Brand', '1200.00', 1), (3, 'Fantastic E-Car', 'E-Cars Inc.', '80000.00', 2), (4, 'Fantastic E-Bike', 'E-Bikes Co. Ltd.', '16000.00', 2); CREATE TABLE IF NOT EXISTS users ( id int(10) unsigned NOT NULL AUTO_INCREMENT, first_name varchar(100) NOT NULL, last_name varchar(100) NOT NULL, signup_date datetime NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3; INSERT INTO users (id, first_name, last_name, signup_date) VALUES (1, 'Francesco', 'Malatesta', '2014-06-29 13:00:00'), (2, 'John', 'Foo Bar', '2014-06-20 11:16:39'); ALTER TABLE items ADD CONSTRAINT items_ibfk_1 FOREIGN KEY (user_id) REFERENCES users (id);
Nota: Anda boleh menentukan alias untuk bidang seperti dalam SQL klasik.
Mendapatkan kaedah
ambil
Menggunakan Foreach bukanlah satu -satunya cara untuk mendapatkan hasilnya. Bagaimana jika kita hanya mahu mengambil hasil pertama dari koleksi?
Cukup gunakan kaedah pengambilan ():
"require": { ... "lichtner/fluentpdo": "dev-master" }
Anda juga boleh mendapatkan satu lajur dengan menentukan namanya sebagai parameter.
$pdo = new PDO("mysql:dbname=wishlist", "root", "password"); $fpdo = new FluentPDO($pdo);
FetchPairs
Menggunakan FetchPairs () Anda boleh mengambil keputusan sebagai array bersekutu. Gunakan sintaks berikut:
$user_id = 1; $query = $fpdo->from('users')->where('id', $user_id); foreach($query as $row){ echo 'Hello, ' . $row['first_name'] . ' ' . $row['last_name'] . '!'; }
anda akan mendapat output berikut:
$fpdo->from('items')->where('price >', 1000);
Ini adalah contoh menggunakan ID dan nama pengguna yang unik.
$query = fpdo->from('users', $user_id); // 将与...相同 $query = $fpdo->from('users')->where('id', $user_id);
Fetchall
yang terakhir tetapi tidak terkecuali adalah kaedah fetchall ().
Berikut adalah sintaks:
$query = $fpdo->from('users')->select(array('first_name', 'last_name'))->where('id', $user_id);
Menggunakan Fetchall () kita mempunyai kawalan sepenuhnya ke atas apa yang kita dapat dari hasilnya. Parameter pertama $ indeks adalah medan yang digunakan sebagai indeks, dan $ selecTOnly digunakan untuk menentukan medan yang akan dipilih.
ini adalah contoh:
// 选择前十个结果... $query = $fpdo->from('users')->where('id', $user_id)->limit(10)->offset(0);
Nota: Lajur yang digunakan sebagai indeks (ID dalam kes ini) juga termasuk dalam array akhir.
Okay, sudah cukup mengenai operasi pilih. Mari kita lihat operasi CRUD yang lain.
masukkan, kemas kini dan padam
Fluentpdo bukan hanya memilih sesuatu. Ia juga mempunyai kelas yang memanipulasi data dengan cara yang mudah.
mari kita mulakan dengan operasi sisipan.
Masukkan
$query = $fpdo->from('items')->orderBy('price');Kaedah
insertInto () digunakan untuk menentukan jadual yang akan digunakan untuk operasi. Anda perlu menetapkan nilai yang diperlukan menggunakan kaedah nilai () (dalam kes ini, ia disimpan dalam array bersekutu $ nilai).
Langkah terakhir ialah kaedah pelaksanaan (), yang akan mengembalikan kunci utama rekod baru.
anda juga boleh menggunakan pintasan ini jika anda mahu:
$query = $fpdo->from('items')->orderBy('price DESC');
UPDATE
Kaedah kemas kini sangat serupa. Mari kita lihat contoh.
$query = $fpdo->from('items')->having('price <', 2000);Gunakan kaedah set (), anda boleh menentukan nilai baru untuk operasi kemas kini.
Gunakan kaedah WHERE (), kami menapis baris yang terjejas. Terdapat juga jalan pintas, seperti yang dinyatakan sebelum ini.
Padam
Padam operasi lebih mudah. Berikut adalah contoh yang cepat.
$query = $fpdo->from('items')->select('brand, COUNT(*) AS c')->groupBy('brand');Jika anda ingin memadam rekod yang mengetahui kunci utamanya, anda boleh menggunakan pintasan Deletefrom () di atas.
Nota: Seperti yang anda lihat dari contoh di sini, anda perlu menggunakan kaedah Execute () untuk menjalankan pertanyaan padam. Jika anda tidak melakukan ini, anda tidak akan mengubah apa -apa dalam pangkalan data. Begitu juga untuk memasukkan dan mengemas kini. Ingatlah ini.
Ciri -ciri Lanjutan
Seperti yang saya katakan sebelum ini, jenis projek ini mempunyai ciri unik mereka sendiri. Fluentpdo tidak terkecuali: kami akan menganalisis dua ciri ini: Builder Query Builder dan Debugger.
Sertai Builder Query
mungkin ciri unik yang paling penting dalam Fluentpdo. Pembina sangat berguna jika anda ingin memudahkan kerja anda dan menulis kod kurang. Mari lihat cara menggunakannya.
Kami akan bermula dengan pertanyaan "klasik" yang ditulis menggunakan fluentpdo.
Sama seperti ini:
$query = $fpdo->from('users'); $row = $query->fetch(); var_dump($row); // 将输出: // array(4) { ["id"]=> string(1) "1" ["first_name"]=> string(9) "Francesco" ["last_name"]=> string(9) "Malatesta" ["signup_date"]=> string(19) "2014-06-29 13:00:00" }OK: Kami menggunakan sintaks klasik dalam kaedah leftjoin khas (). tidak teruk.
tetapi kita boleh melakukan yang lebih baik. Jika anda menggunakan konvensyen dalam struktur meja, anda boleh menggunakan kod ini:
CREATE TABLE IF NOT EXISTS items ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(100) NOT NULL, brand varchar(100) NOT NULL, price decimal(10,2) NOT NULL, user_id int(10) unsigned NOT NULL, PRIMARY KEY (id), KEY user_id (user_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; INSERT INTO items (id, name, brand, price, user_id) VALUES (1, 'Last Awesome Phone', 'Awesome Brand', '550.00', 1), (2, 'Last Awesome TV', 'Awesome Brand', '1200.00', 1), (3, 'Fantastic E-Car', 'E-Cars Inc.', '80000.00', 2), (4, 'Fantastic E-Bike', 'E-Bikes Co. Ltd.', '16000.00', 2); CREATE TABLE IF NOT EXISTS users ( id int(10) unsigned NOT NULL AUTO_INCREMENT, first_name varchar(100) NOT NULL, last_name varchar(100) NOT NULL, signup_date datetime NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3; INSERT INTO users (id, first_name, last_name, signup_date) VALUES (1, 'Francesco', 'Malatesta', '2014-06-29 13:00:00'), (2, 'John', 'Foo Bar', '2014-06-20 11:16:39'); ALTER TABLE items ADD CONSTRAINT items_ibfk_1 FOREIGN KEY (user_id) REFERENCES users (id);
hebat, bukan? Ok, cepat sangat keren ... tetapi bagaimana dengan pintar?
Lihat di sini:
"require": { ... "lichtner/fluentpdo": "dev-master" }
Ia menjadi lebih baik.
Malah, FluentPdo memahami apa yang anda mahu lakukan dan secara automatik membina pertanyaan menggunakan data yang anda berikan dalam kaedah PILIH () dengan rentetan format Table.FieldName.
anda boleh membaca pertanyaan binaan akhir untuk contoh terakhir di sini:
$pdo = new PDO("mysql:dbname=wishlist", "root", "password"); $fpdo = new FluentPDO($pdo);
Ini kelihatan baik.
Sudah tentu, anda boleh membuat alias untuk medan jika anda mahu:
$user_id = 1; $query = $fpdo->from('users')->where('id', $user_id); foreach($query as $row){ echo 'Hello, ' . $row['first_name'] . ' ' . $row['last_name'] . '!'; }
Debugger
Fluentpdo dilengkapi dengan sistem debugger terbina dalam yang boleh anda gunakan untuk menguji pertanyaan dan menyemaknya.
Ia menggunakan sistem penutupan yang mudah. Jika anda ingin menggunakan debugging, letakkan kod ini selepas menyambungkan kod.
$fpdo->from('items')->where('price >', 1000);
Anda boleh menyesuaikan penutupan seperti yang anda mahu, ingatlah untuk mengambil objek $ BaseQuery sebagai parameter.
Objek BaseQuery $ adalah contoh kelas BaseQuery.
Kesimpulan
fluentpdo adalah projek kecil dan mudah. Ia pasti tidak sesuai dengan setiap projek dan boleh diperbaiki - terutamanya jika tidak aktif selama enam bulan - tetapi untuk aplikasi kecil/sederhana, ia boleh menjadi pilihan yang baik sekiranya anda tidak mahu memperkenalkan rangka kerja besar dalam permainan . Ia adalah tradeoff yang baik kerana beberapa ciri -cirinya, seperti Builder Query Builder.
Soalan Lazim Mengenai Bermula Dengan Fluentpdo (Soalan Lazim)
Apa itu fluentpdo dan mengapa saya harus menggunakannya?
fluentpdo adalah pembina pertanyaan php SQL yang menggunakan PDO. Ia menyediakan antara muka yang mudah dan mudah digunakan untuk membuat pertanyaan SQL, menjadikannya lebih mudah bagi pemaju untuk berinteraksi dengan pangkalan data. Fluentpdo amat berguna bagi mereka yang tidak digunakan untuk menulis pertanyaan SQL mentah atau ingin mempercepat proses pembangunan. Ia menyokong semua fungsi SQL dan menyediakan cara yang selamat untuk mencegah serangan suntikan SQL.
bagaimana memasang fluentpdo?
fluentpdo boleh dipasang menggunakan komposer (Pengurus Ketergantungan PHP). Anda boleh memasangnya dengan menjalankan arahan composer require envms/fluentpdo
. Selepas menjalankan arahan ini, komposer akan memuat turun dan memasang Fluentpdo dan kebergantungannya ke dalam projek anda.
Bagaimana untuk menyambung ke pangkalan data menggunakan fluentpdo?
Untuk menyambung ke pangkalan data menggunakan fluentpdo, anda perlu membuat contoh baru kelas fluentpdo. Anda boleh melakukan ini dengan meluluskan contoh PDO kepada pembina fluentpdo. Berikut adalah contoh:
$query = fpdo->from('users', $user_id); // 将与...相同 $query = $fpdo->from('users')->where('id', $user_id);
bagaimana untuk melaksanakan pertanyaan pilih menggunakan fluentpdo?
Fluentpdo menyediakan antara muka yang mudah untuk melakukan pertanyaan pilih. Anda boleh menentukan jadual menggunakan kaedah from
dan menentukan lajur menggunakan kaedah select
. Berikut adalah contoh:
$query = $fpdo->from('users')->select(array('first_name', 'last_name'))->where('id', $user_id);
bagaimana untuk melaksanakan pertanyaan sisipan menggunakan fluentpdo?
3 Berikut adalah contoh:CREATE TABLE IF NOT EXISTS items ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(100) NOT NULL, brand varchar(100) NOT NULL, price decimal(10,2) NOT NULL, user_id int(10) unsigned NOT NULL, PRIMARY KEY (id), KEY user_id (user_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; INSERT INTO items (id, name, brand, price, user_id) VALUES (1, 'Last Awesome Phone', 'Awesome Brand', '550.00', 1), (2, 'Last Awesome TV', 'Awesome Brand', '1200.00', 1), (3, 'Fantastic E-Car', 'E-Cars Inc.', '80000.00', 2), (4, 'Fantastic E-Bike', 'E-Bikes Co. Ltd.', '16000.00', 2); CREATE TABLE IF NOT EXISTS users ( id int(10) unsigned NOT NULL AUTO_INCREMENT, first_name varchar(100) NOT NULL, last_name varchar(100) NOT NULL, signup_date datetime NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3; INSERT INTO users (id, first_name, last_name, signup_date) VALUES (1, 'Francesco', 'Malatesta', '2014-06-29 13:00:00'), (2, 'John', 'Foo Bar', '2014-06-20 11:16:39'); ALTER TABLE items ADD CONSTRAINT items_ibfk_1 FOREIGN KEY (user_id) REFERENCES users (id);
Bagaimana untuk melaksanakan pertanyaan kemas kini menggunakan fluentpdo?
Untuk melakukan pertanyaan kemas kini, anda boleh menentukan jadual menggunakan kaedah update
, tentukan nilai baru menggunakan kaedah set
, dan tentukan syarat menggunakan kaedah where
. Berikut adalah contoh:
"require": { ... "lichtner/fluentpdo": "dev-master" }
bagaimana untuk melakukan pertanyaan padam menggunakan fluentpdo?
Untuk melakukan pertanyaan padam, anda boleh menentukan jadual menggunakan kaedah deleteFrom
dan menentukan syarat menggunakan kaedah where
. Berikut adalah contoh:
$pdo = new PDO("mysql:dbname=wishlist", "root", "password"); $fpdo = new FluentPDO($pdo);
Bagaimana menangani kesilapan dalam fluentpdo?
Apabila ralat berlaku, Fluentpdo akan membuang pengecualian. Anda boleh menggunakan blok percubaan untuk menangkap pengecualian ini dan mengendalikannya dengan sewajarnya. Berikut adalah contoh:
$user_id = 1; $query = $fpdo->from('users')->where('id', $user_id); foreach($query as $row){ echo 'Hello, ' . $row['first_name'] . ' ' . $row['last_name'] . '!'; }
Bagaimana menggunakan transaksi di fluentpdo?
FluentPDO menyediakan kaedah untuk memulakan, melakukan dan melancarkan urus niaga. Anda boleh menggunakan beginTransaction
, commit
dan rollBack
kaedah masing -masing. Berikut adalah contoh:
$fpdo->from('items')->where('price >', 1000);
Bagaimana menggunakan fluentpdo untuk menyertai jadual?
Fluentpdo menyediakan antara muka yang mudah untuk menyambungkan jadual. Anda boleh menggunakan kaedah join
untuk menentukan jadual dan syarat. Berikut adalah contoh:
$query = fpdo->from('users', $user_id); // 将与...相同 $query = $fpdo->from('users')->where('id', $user_id);
Atas ialah kandungan terperinci Bermula dengan Fluentpdo. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Phpidentifierauser'sSessionusingSessionCookiesandSessionIds.1) whensession_start () ISCALLED, phpGeneratesAuniquesessionIdstoredinacookienamedPhpsessidontheUserer'sBrowser.2) ThisIdallowsPhptoretRievesSessionDataFromtheserver.

Keselamatan sesi PHP boleh dicapai melalui langkah -langkah berikut: 1. Gunakan session_regenerate_id () untuk menjana semula ID sesi apabila pengguna log masuk atau merupakan operasi penting. 2. Sulitkan ID sesi penghantaran melalui protokol HTTPS. 3. Gunakan session_save_path () untuk menentukan direktori selamat untuk menyimpan data sesi dan menetapkan kebenaran dengan betul.

PhpsessionFileSarestoredIntHedirectorySpecifiedBySession.save_path, biasanya/tmponunix-likesystemsorc: \ windows \ temponwindows.tocustomethis: 1) usession_save_path ()

ToretrievedataFromaphpsession, startTheSessionWithSsion_start () andaccessVariablesInthe $ _SessionArray.Forexample: 1) startTheSession: session_start ()

Langkah -langkah untuk membina sistem keranjang belanja yang cekap menggunakan sesi termasuk: 1) Memahami definisi dan fungsi sesi. Sesi ini adalah mekanisme penyimpanan sisi pelayan yang digunakan untuk mengekalkan status pengguna merentasi permintaan; 2) melaksanakan pengurusan sesi asas, seperti menambah produk ke keranjang belanja; 3) memperluas penggunaan lanjutan, menyokong pengurusan kuantiti produk dan penghapusan; 4) Mengoptimumkan prestasi dan keselamatan, dengan berterusan data sesi dan menggunakan pengecam sesi yang selamat.

Artikel ini menerangkan cara membuat, melaksanakan, dan menggunakan antara muka dalam PHP, memberi tumpuan kepada manfaat mereka untuk organisasi kod dan penyelenggaraan.

Artikel ini membincangkan perbezaan antara crypt () dan password_hash () dalam php untuk hashing kata laluan, memberi tumpuan kepada pelaksanaan, keselamatan, dan kesesuaian untuk aplikasi web moden.

Artikel membincangkan mencegah skrip lintas tapak (XSS) dalam PHP melalui pengesahan input, pengekodan output, dan menggunakan alat seperti OWASP ESAPI dan pembersih HTML.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

Dreamweaver Mac版
Alat pembangunan web visual
