البرمجة

تحسين إدخال البيانات في قاعدة البيانات باستخدام PHP وتقنيات أحدث

عذرًا لمشكلتك في إدخال البيانات إلى قاعدة البيانات باستخدام PHP. يبدو أن هناك خطأ في كود الاستعلام SQL الذي قمت بإعداده. دعني أشرح لك الأخطاء المحتملة وأقدم لك تعديلات مناسبة.

أولاً وقبل كل شيء، يُفضل استخدام اتصالات mysqli أو PDO بدلاً من استخدام ميزة mysql التي تم إزالتها في إصدارات PHP الحديثة. لذلك سأقوم بتعديل الكود باستخدام mysqli.

ثانيًا، يجب عليك تصحيح تركيبة قيم العمود في الاستعلام SQL، حيث يبدو أن هناك خطأ في تركيبة النص في هذه الجملة:

php
"('$StockName,$FUMUKUPrice, $DTime')"

يجب أن يكون كالتالي:

php
"('$StockName', $FUMUKUPrice, '$DTime')"

الأنواع الرقمية (مثل الأسعار) لا تحتاج إلى علامات اقتباس، بينما يجب أن تكون القيم النصية (مثل اسم السهم والتاريخ) محاطة بعلامات اقتباس.

وفيما يلي إصدار معدل من الكود باستخدام mysqli:

php
$dbhost = 'localhost'; $dbuser = 'evocityi_admin'; $dbpass = 'password'; $database = 'evocityi_stocks'; $conn = new mysqli($dbhost, $dbuser, $dbpass, $database); if ($conn->connect_error) { die('Could not connect: ' . $conn->connect_error); } $Dtime = "30/04/16"; $StockName = "FUMUKU"; $FUMUKUPrice = 1000; $sql = "INSERT INTO stocks (Stock, Price, TimeD) VALUES ('$StockName', $FUMUKUPrice, '$Dtime')"; if ($conn->query($sql) === TRUE) { echo "Entered data successfully\n"; } else { die('Could not enter data: ' . $conn->error); } $conn->close(); ?>

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

المزيد من المعلومات

بالطبع، دعوني أوسع المعلومات حول الكود وعملية إدخال البيانات إلى قاعدة البيانات باستخدام PHP.

أولًا، يُفضل استخدام تقنيات أحدث مثل استخدام استعلامات معدة مسبقًا (Prepared Statements) لضمان أمان البيانات وتجنب هجمات SQL Injection. يمكن تحسين الأمان في الكود باستخدام هذه التقنية.

php
$stmt = $conn->prepare("INSERT INTO stocks (Stock, Price, TimeD) VALUES (?, ?, ?)"); $stmt->bind_param("sds", $StockName, $FUMUKUPrice, $Dtime); $StockName = "FUMUKU"; $FUMUKUPrice = 1000; $Dtime = "30/04/16"; if ($stmt->execute()) { echo "Entered data successfully\n"; } else { die('Could not enter data: ' . $stmt->error); } $stmt->close();

ثانيًا، من المهم فحص الاتصال بقاعدة البيانات والتأكد من نجاحه قبل محاولة إدخال البيانات. يمكنك استخدام دالة mysqli_ping() لفحص اتصال قاعدة البيانات.

php
if (mysqli_ping($conn)) { // الاتصال ناجح، يمكن متابعة تنفيذ الكود } else { die('Database connection lost'); }

ثالثًا، يجب التأكد من أن أسماء الأعمدة في قاعدة البيانات متطابقة تمامًا مع الأسماء التي تم استخدامها في استعلام SQL. في حالة الرسالة التي تظهر لديك “Unknown column ‘FUMUKU’ in ‘field list'”، يجب التحقق من وجود العمود المطلوب في جدول البيانات.

أخيرًا، قم بتسجيل أية رسائل خطأ تظهر باستخدام mysqli_error() لتحديد أي مشكلة محددة قد تحدث.

php
if ($stmt->execute()) { echo "Entered data successfully\n"; } else { die('Could not enter data: ' . mysqli_error($conn)); }

باستخدام هذه التحسينات، يتوقع أن يكون الكود أكثر أمانًا وأكثر دقة في إدخال البيانات إلى قاعدة البيانات.

زر الذهاب إلى الأعلى