• 0

كيف أسجل معلومات عن طريق مكتبة PDO على قاعدة بيانات من نوع Mysql؟

على  تطبيق خاص بتسجيل بعض المعلومات حول حواسيب معينة، استعملت مكتبة PDOلتخزين البيانات على قاعدة بيانات Mysql:

$con->prepare("INSERT INTO `myComputers` (`hwid`, `ip`, `pcname`, `username`, `os`, `country`, `first`) VALUES (:hwid, :ip, :pcname, :username, :os, :country, :first")->execute(
      array(
        ':hwid'        => $data_array['hwid'],
        ':ip'          => $data_array['ip'],
        ':pcname'      => $data_array['pcname'],
        ':username'    => $data_array['username'],
        ':os'          => $data_array['os'],
        ':country'     => $data_array['country'],
        ':first'       => $data_array['first']
      )
    );

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

CREATE TABLE IF NOT EXISTS myComputers(
    hwid VARCHAR(64) NOT NULL PRIMARY KEY,
    ip VARCHAR(45) NOT NULL,
    pcname VARCHAR(50) NOT NULL,
    username VARCHAR(50) NOT NULL,
    os VARCHAR(150) NOT NULL,
    country CHAR(2) NOT NULL,
    first int(11) NOT NULL
  ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

ولأني في مرحلة تجربة أقوم بإعطاء بيانات عشوائية للتأكد من الأمر، وهذه عينة من قيم التجربة:

blahblah
123.12.123.123
PotatoPC
MyPotato
Windows
AU
1447671823

أين هو الخطأ، رغم أني حاولت مرات ومرات لكن لم أجد مكان الخطأ؟

تمّ تعديل بواسطة Simoh

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

في الكود المتعلق بجملة الاستعلام Insert قمتَ بفتح قوس ونسيت إغلاقه عند نهاية الجملة أي عند الجزئية "(first: وهذا ما سيُحدث خطأ في الكود، باعتبار أن جملة الاستعلام خاطئة وغير كاملة من حيث طريقة الكتابة، ليكون الكود الصحيح هو :

$con->prepare("INSERT INTO `myComputers` (`hwid`, `ip`, `pcname`, `username`, `os`, `country`, `first`) VALUES (:hwid, :ip, :pcname, :username, :os, :country, :first)")->execute(
 array(
        ':hwid'        => $data_array['hwid'],
        ':ip'          => $data_array['ip'],
        ':pcname'      => $data_array['pcname'],
        ':username'    => $data_array['username'],
        ':os'          => $data_array['os'],
        ':country'     => $data_array['country'],
        ':first'       => $data_array['first']
      )
    );

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن