PHP5 mysqli的prepare准备语句使用说明
mysqli对prepare的支持对于大访问量的网站是很有好处的,它极大地降低了系统开销,而且保证了创建查询的稳定性和安全性.prepare准备语句分为绑定参数和绑定结果
mysqli对prepare的支持对于大访问量的网站是很有好处的,它极大地降低了系统开销,而且保证了创建查询的稳定性和安全性。prepare准备语句分为绑定参数和绑定结果,下面将会一一介绍!
(1)绑定参数
看下面php代码:
代码如下:
//创建连接
$mysqli=new mysqli("localhost","root","","volunteer");
//检查连接是否被创建
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/*
* 创建一个准备查询语句:
* ?是个通配符,可以用在任何有文字的数据
* 相当于一个模板,也就是预备sql语句
*/
if ($stmt = $mysqli->prepare("insert into `vol_msg`(mid,content) values(?,?)")){
/*第一个参数是绑定类型,"s"是指一个字符串,也可以是"i",指的是int。也可以是"db",
* d代表双精度以及浮点类型,而b代表blob类型,第二个参数是变量
*/
$stmt->bind_param("is",$id,$content);
//给变量赋值
$id = "";
$content = "这是插入的内容";
//执行准备语句
$stmt->execute();
//显示插入的语句
echo "Row inserted".$stmt->affected_rows;
//下面还可以继续添加多条语句,不需要prepare预编译了
//关闭数据库的链接
$mysqli->close();
}
?>
以上php实例运行结果:
Row inserted:1
(2).绑定结果:绑定结果就是将你绑定的字段给php变量,以便必要时使用这些变量
请看下面的php代码:
代码如下:
//创建连接
$mysqli=new mysqli("localhost","root","","volunteer");
//设置mysqli编码
mysqli_query($mysqli,"SET NAMES utf8");
//检查连接是否被创建
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
//创建准备语句
if ($stmt = $mysqli->prepare("select mid,content from `vol_msg`")){
//执行查询
$stmt->execute();
//为准备语句绑定实际变量
$stmt->bind_result($id,$content);
//显示绑定结果的变量
while($stmt->fetch()){
echo "第".$id."条: ".$content."
";
}
//关闭数据库的链接
$mysqli->close();
}
?>

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

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Apabila menulis aplikasi web menggunakan PHP, pangkalan data MySQL sering digunakan untuk menyimpan data. PHP menyediakan cara untuk berinteraksi dengan pangkalan data MySQL yang dipanggil MySQLi. Walau bagaimanapun, kadangkala apabila menggunakan MySQLi, anda akan menemui mesej ralat, seperti yang ditunjukkan di bawah: PHPFatalerror:Calltoundefinedfunctionmysqli_connect() Mesej ralat ini bermakna PHP tidak dapat mencari saya

PDOPDO ialah lapisan abstraksi akses pangkalan data berorientasikan objek yang menyediakan antara muka bersatu untuk PHP, membolehkan anda menggunakan kod yang sama untuk berinteraksi dengan pangkalan data yang berbeza (seperti Mysql, postgresql, oracle). PDO menyembunyikan kerumitan sambungan pangkalan data asas dan memudahkan operasi pangkalan data. Kebaikan dan Kelemahan Kelebihan: Antara muka bersatu, menyokong berbilang pangkalan data, memudahkan operasi pangkalan data, mengurangkan kesukaran pembangunan, menyediakan penyata yang disediakan, meningkatkan keselamatan, menyokong pemprosesan transaksi Kelemahan: prestasi mungkin lebih rendah sedikit daripada sambungan asli, bergantung pada perpustakaan luaran, mungkin meningkatkan overhed, kod demo menggunakan PDO Sambung ke pangkalan data mysql: $db=newPDO("mysql:host=localhost;dbnam

Menggunakan Penyata Disediakan Penyata yang disediakan dalam PDO membenarkan pangkalan data untuk menyusun pertanyaan terlebih dahulu dan melaksanakannya beberapa kali tanpa menyusun semula. Ini penting untuk mengelakkan serangan suntikan SQL, dan ia juga boleh meningkatkan prestasi pertanyaan dengan mengurangkan overhed kompilasi pada pelayan pangkalan data. Untuk menggunakan pernyataan yang disediakan, ikuti langkah berikut: $stmt=$pdo->prepare("SELECT*FROMusersWHEREid=?");Bind ParametersBind parameter ialah cara yang selamat dan cekap untuk menyediakan parameter pertanyaan yang boleh Mencegah serangan suntikan SQL dan meningkatkan prestasi. Dengan mengikat parameter kepada ruang letak, pangkalan data boleh mengoptimumkan rancangan pelaksanaan pertanyaan dan mengelakkan daripada melakukan penggabungan rentetan. Untuk mengikat parameter, gunakan sintaks berikut:

Penyelesaian kepada PHP tidak dapat menyambung ke mysqli: 1. Buka fail "php.ini"; 2. Cari "mysqli.reconnect"; 3. Tukar "mysqli.reconnect = OFF" kepada "mysqli.reconnect = on".

Jika anda menghadapi mesej ralat berikut semasa menggunakan PHP untuk menyambung ke pangkalan data MySQL: PHPWarning:mysqli_connect():(HY000/2002):Connectionrefused, maka anda boleh cuba menyelesaikan masalah ini dengan mengikuti langkah di bawah. Untuk mengesahkan sama ada perkhidmatan MySQL berjalan seperti biasa, anda harus terlebih dahulu menyemak sama ada perkhidmatan MySQL berjalan seperti biasa Jika perkhidmatan tidak berjalan atau gagal dimulakan, ia boleh menyebabkan ralat ditolak sambungan. boleh awak

Fail mysql yang sedang dijalankan ialah mysqld ialah fail boleh laku, yang mewakili program pelayan Mysql secara langsung boleh memulakan proses pelayan dan mysqld_safe adalah skrip permulaan, yang secara tidak langsung akan memanggil mysqld .

Cara menggunakan MySQLi untuk mewujudkan sambungan pangkalan data dalam PHP: Sertakan sambungan MySQLi (require_once) Cipta fungsi sambungan (functionconnect_to_db) Fungsi sambungan panggilan ($conn=connect_to_db()) Laksanakan pertanyaan ($result=$conn->query()) Tutup sambungan ( $conn->close())

Apabila menggunakan sambungan mysqli untuk menyambung dan mengendalikan pangkalan data MySQL, anda kadangkala menghadapi ralat PHPFatalerror:Calltoundefinedmethodmysqli::prepare(). Ralat ini biasanya disebabkan oleh sebab-sebab berikut: PHP mempunyai sokongan yang tidak mencukupi untuk sambungan mysqli tidak dimuatkan atau dikonfigurasikan dengan betul terdapat ralat sintaks dalam kod PHP tidak dikonfigurasikan atau berjalan dengan betul;
