Dalam artikel sebelumnya, saya membawakan anda " Bagaimana untuk mengendalikan ralat dalam PDO untuk pembelajaran pangkalan data PHP? 》, yang memperkenalkan pengetahuan berkaitan pengendalian ralat PDO dalam PHP secara terperinci Dalam artikel ini, mari kita lihat cara untuk menetapkan dan mendapatkan atribut PDO dalam PHP. Semoga ia membantu semua orang!
Dalam artikel sebelum ini kita telah mengetahui tentang isu yang berkaitan dengan pengendalian ralat PDO dalam PHP, kemudian mari kita pelajari cara untuk menetapkan dan mendapatkan atribut PDO. Terdapat banyak sifat dalam objek PDO yang boleh digunakan untuk melaraskan kelakuan PDO atau mendapatkan keadaan pemandu yang mendasari.
Jika tiada pilihan atribut ditetapkan dalam parameter terakhir dalam pembina semasa mencipta objek PDO, anda boleh menetapkan dan mendapatkannya melalui kaedah setAttribute()
dan getAttribute()
dalam objek PDO selepas objek itu dicipta. Kemudian mari kita lihat kedua-dua kaedah ini bersama-sama. Kaedah
<strong><span style="font-size: 20px;">getAttribute()</span></strong>
kaedah
getAttribute()
hanya perlu menyediakan satu parameter dan boleh menghantar nama atribut khusus yang mewakili parameter ini. Selepas pelaksanaan berjaya, nilai yang ditentukan oleh atribut ini akan dikembalikan, jika tidak NULL akan dikembalikan. Ia mudah difahami. Format sintaksnya adalah seperti berikut:
PDO::getAttribute(int $attribute)
Apa yang perlu diberi perhatian ialah:
Parameter $attribute
ialah salah satu daripada PDO::ATTR_*
pemalar, yang mana digunakan pada sambungan pangkalan data. Terdapat banyak pemalar,
Mari kita lihat contoh dahulu, dan kemudian buat ringkasan seperti berikut:
<?php header("Content-Type: text/html;charset=utf-8"); $opt = [PDO::ATTR_PERSISTENT=>TRUE]; try{ $pdo = new PDO('mysql:dbname=test;host=127.0.0.1','root','root',$opt); }catch(PDOException $e){ echo '数据库连接失败:'.$e->getMessage(); exit(); } echo 'PDO 是否关闭自动提交功能:'.$pdo -> getAttribute(PDO::ATTR_AUTOCOMMIT); echo '<br>当前 PDO 的错误处理模式:'.$pdo -> getAttribute(PDO::ATTR_ERRMODE); echo '<br>表字段字符的大小写转换:'.$pdo -> getAttribute(PDO::ATTR_CASE); echo '<br>空字符串转换为 SQL 的 null:'.$pdo -> getAttribute(PDO::ATTR_ORACLE_NULLS); echo '<br>应用程序提前获取数据大小:'.$pdo -> getAttribute(PDO::ATTR_PERSISTENT); ?>
Hasil keluaran :
Berdasarkan keputusan di atas, kami merumuskan:
PDO::ATTR_AUTOCOMMIT
menunjukkan sama ada PDO mematikan fungsi penyerahan automatik, PDO::ATTR_ERRMODE
menunjukkan mod pengendalian ralat PDO semasa, PDO::ATTR_CASE
menunjukkan penukaran kes bagi aksara medan jadual, PDO::ATTR_ORACLE_NULLS
mewakili penukaran rentetan kosong ke SQL null dan PDO::ATTR_PERSISTENT
mewakili program aplikasi untuk mendapatkan saiz data terlebih dahulu .
Lebih daripada itu, izinkan saya meringkaskan beberapa pemalar yang biasa digunakan digunakan pada sambungan pangkalan data:
PDO::ATTR_CONNECTION_STATUS
Mewakili parameter unik yang berkaitan dengan maklumat status sambungan.
PDO::ATTR_SERVER_INFO
mewakili maklumat pelayan khusus pangkalan data.
PDO::ATTR_SERVER_VERSION
mewakili nombor versi pelayan pangkalan data.
PDO::ATTR_CLIENT_VERSION
mewakili nombor versi pelanggan pangkalan data.
Sekarang kita memahami kaedah getAttribute(), mari kita lihat pengetahuan berkaitan kaedah setAttribute() Mari kita lihat bersama.
<strong><span style="font-size: 20px;">setAttribute()</span></strong>
setAttribute()
setAttribute()
PDO::setAttribute(int $attribute, mixed $value)
Kaedah ini boleh digunakan untuk menetapkan atribut pemegang pangkalan data setAttribute() sedikit lebih rumit daripada getAttribute() Format sintaksnya adalah seperti berikut:
Apa yang perlu kita perhatikan ialah. : $attribute
$value
memberikan nama atribut khusus objek PDO, dan parameter kedua PDO::ATTR_CASE
memberikan nilai kepada atribut yang ditentukan.
PDO::ATTR_ERRMODE
bermaksud nama lajur boleh dipaksa untuk berada dalam kes yang ditentukan, di mana PDO::CASE_LOWER bermaksud nama lajur dipaksa menjadi huruf kecil; PDO::CASE_NATURAL bermakna nama lajur dikembalikan oleh pemacu pangkalan data dikekalkan; PDO::CASE_UPPER bermakna ia terpaksa Hurufkan nama lajur.
PDO::ATTR_ORACLE_NULLS
mewakili laporan ralat, dengan PDO::ERRMODE_SILENT hanya mewakili menetapkan kod ralat; PDO::ERRMODE_WARNING mewakili ralat E_WARNING;
<?php header("Content-Type: text/html;charset=utf-8"); $pdo = new PDO('mysql:dbname=test;host=127.0.0.1','root','root',$opt); $pdo->setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER); echo 'PDO::ATTR_CASE属性的值为:'.$pdo -> getAttribute(PDO::ATTR_CASE); $pdo->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER); echo '<br>PDO::ATTR_CASE属性的值为:'.$pdo -> getAttribute(PDO::ATTR_CASE); $pdo->setAttribute(PDO::ATTR_CASE, PDO::CASE_NATURAL); echo '<br>PDO::ATTR_CASE属性的值为:'.$pdo -> getAttribute(PDO::ATTR_CASE); ?>
Seterusnya, mari kita ambil contoh untuk menggunakan kaedah setAttribute() untuk menetapkan atribut pemegang pangkalan data Contohnya adalah seperti berikut:
Hasil keluaran: <.>
Dalam contoh di atas, atribut pemegang pangkalan data ditetapkan dengan menggunakan kaedah setAttribute(). Seterusnya, saya akan menyusun nama atribut biasa yang tersedia dan nilai yang boleh digunakan:PDO::ATTR_STRINGIFY_FETCHES
bermaksud menukar nilai kepada rentetan apabila mengekstrak; Tidak boleh digunakan dengan kejadian PDO yang berterusan.
PDO::ATTR_STATEMENT_CLASS
Menunjukkan sama ada untuk menyerahkan setiap penyata individu secara automatik Ia tersedia dalam OCI, Firebird dan MySQL.
PDO::ATTR_AUTOCOMMIT
bermaksud menetapkan mod pengekstrakan lalai.
PDO::ATTR_DEFAULT_FETCH_MODE
bermaksud menggunakan pertanyaan buffer, yang tersedia dalam pangkalan data MySQL.
Kita juga perlu memberi perhatian kepada perkara berikut: PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
mewakili bilangan saat untuk tamat masa yang ditentukan. Mungkin terdapat perbezaan antara pemacu yang berbeza Contohnya, SQLite akan berhenti memperoleh kunci boleh tulis selepas menunggu nilai ini, tetapi pemacu lain mungkin mentafsirkan nilai ini sebagai sambungan atau selang masa tamat baca membolehkan atau melumpuhkan simulasi pernyataan yang disediakan. Sesetengah pemacu tidak mempunyai atau terhad sokongan untuk prapemprosesan tempatan Gunakan tetapan ini untuk memaksa PDO sentiasa meniru kenyataan yang disediakan, atau cuba menggunakan kenyataan yang disediakan tempatan. Jika pemandu tidak berjaya menyediakan pertanyaan semasa, ia akan sentiasa kembali kepada simulasi kenyataan yang disediakan.
" untuk mengetahui lebih lanjut tentang pengetahuan PHP. PDO::ATTR_TIMEOUT
Atas ialah kandungan terperinci Bagaimana untuk menetapkan dan mendapatkan atribut PDO dalam pembelajaran pangkalan data PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!