"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية استخدام البيانات المعدة بشكل فعال في MySQL مع PHP؟

كيفية استخدام البيانات المعدة بشكل فعال في MySQL مع PHP؟

تم النشر بتاريخ 2024-12-21
تصفح:798

How to Effectively Use Prepared Statements in MySQL with PHP?

البدء باستخدام البيانات المعدة في MySQL

تعد البيانات المعدة أداة أساسية لكتابة استعلامات SQL آمنة وفعالة. في هذه المقالة، سوف نستكشف كيفية استخدام البيانات المعدة مع mysqli، امتداد MySQLi في PHP.

خطأ في بناء الجملة: تنفيذ غير كائن

الخطأ الذي تواجهه ، "خطأ فادح: تنفيذ استدعاء دالة عضو () على كائن غير كائن،" يشير عادةً إلى أن المتغير $stmt لم تتم تهيئته بشكل صحيح أو أنه كائن. إليك كيفية تصحيح ذلك:

$stmt = $mysqli->prepare("INSERT INTO users (name, age) VALUES (?,?)");

تأكد من أن لديك اتصال صالح بقاعدة البيانات قبل المتابعة.

معلمات الربط

استخدام البيانات المعدة علامات المعلمات (على سبيل المثال،؟) لتمثيل قيم الإدخال. يجب أن تكون هذه القيم مرتبطة بمتغيرات PHP قبل تنفيذ العبارة. إليك مثال:

$name = 'one';
$age = 1;
$stmt->bind_param('si', $name, $age);

في هذا المثال، قمنا بربط معلمة الاسم كسلسلة ('s') ومعلمة العمر كعدد صحيح ('i ').

تنفيذ البيان

بمجرد ربط المعلمات، يمكنك تنفيذ الأمر المُجهز البيان:

$stmt->execute();
$stmt->execute();

معالجة الأخطاء

توفر البيانات المعدة معالجة أفضل للأخطاء من استعلامات SQL المباشرة. استخدم طريقة mysqli_stmt::error لاسترداد رسائل الخطأ:

if ($stmt->error) { يموت("خطأ:" .$stmt->خطأ);
if ($stmt->error) {
    die("Error: " . $stmt->error);
}

مثال كامل

إليك مثال كامل لإدراج الأخطاء واختيارها ومعالجتها:

// إنشاء اتصال $mysqli = new mysqli("localhost"، "root"، "root"، "test"); // تحضير المعلمات وربطها $stmt = $mysqli->prepare("INSERT INTO المستخدمين (الاسم، العمر) VALUES (؟،؟)"); $stmt->bind_param('si', $name, $age); // أدخل عدة صفوف $name = 'واحد'; $العمر = 1; $stmt->تنفيذ(); $name = 'اثنين'; $العمر = 2; $stmt->تنفيذ(); // إعداد وتنفيذ بيان التحديد $stmt = $mysqli->prepare("SELECT * FROM users"); $stmt->تنفيذ(); // ربط النتيجة $result = $stmt->get_result(); // نتائج العملية بينما ($row = $result->fetch_assoc()) { صدى $row['name'] . "،" . $صف['العمر'] . "
\n"; } // التعامل مع الأخطاء إذا ($stmt->خطأ) { يموت("خطأ:" .$stmt->خطأ);
if ($stmt->error) {
    die("Error: " . $stmt->error);
}
باستخدام البيانات المعدة، يمكنك منع هجمات حقن SQL وكتابة استعلامات SQL أكثر قوة وكفاءة.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3