prepare
تابع prepare در MySQLi یک «کوئری آماده (Prepared Statement)» می سازد. یعنی پرس وجو را قبل اجرا آماده می کند تا امن تر و سریع تر شود. مثل این که تکلیف را اول قالب بندی کنی، بعد فقط جای خالی ها را پر کنی.
تابع prepare در MySQLi چیست؟
تابع prepare(query) یک شیء «بیانیه (Statement)» برمی گرداند. سپس با bind_param مقادیر را وصل می کنی و با execute اجرا می گیری. توجه کن در متن کوئری، سمیکالن نگذار.
نمونه شیءگرا (Object Oriented)
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "my_db");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: " . $mysqli->connect_error;
exit();
}
$stmt = $mysqli->prepare("INSERT INTO MyGuests (firstname, lastname, email) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $firstname, $lastname, $email);
$firstname = "John";
$lastname = "Doe";
$email = "john@example.com";
$stmt->execute();
$firstname = "Mary";
$lastname = "Moe";
$email = "mary@example.com";
$stmt->execute();
echo "New records created successfully";
$stmt->close();
$mysqli->close();
?>
گام های عملی استفاده
- به دیتابیس وصل شو.
- prepare() را با کوئری بدون سمیکالن صدا بزن.
- با bind_param مقدارها را وصل کن و اجرا کن.
نکته ها و هشدارها
نکته: prepare جلوی تزریق SQL را کمک می کند؛ چون داده جداست.
هشدار: در انتهای کوئری سمیکالن نگذار؛ طبق منبع خطاست.
مطالب مرتبط: prepare، bind_param، و real_connect.
جمع بندی سریع
- prepare بیانیه آماده می سازد.
- داده ها با bind_param جدا می شوند.
- سمیکالن در کوئری نگذار.
- در پایان، close() را فراموش نکن.