قائمة الطعام
مجانا
التسجيل
الصفحة الرئيسية  /  الملاحون/ إضافة إلى mysql عبر php. كيفية الكتابة إلى قاعدة بيانات MySQL باستخدام كود PHP

إضافة إلى mysql عبر php. كيفية الكتابة إلى قاعدة بيانات MySQL باستخدام كود PHP

التعليقات تم نقلها من المدونة

سيرجي
09/14/2016 الساعة 01:25
طاب مسائك!
أنا مهتم بهذا السؤال: ما أسهل طريقة لتنظيم تخزين البيانات وإعدادات البرامج دون استخدام قاعدة بيانات؟ لا أريد أن أكون مقيدًا بـ MySQL أو Access ..

مشرف
09/14/2016 الساعة 22:14
مرحبا!

الخصائص. الإعدادات
التطبيق
ملف XML
التسلسل
حاول اختيار شيء من القائمة.

نيكولاي
09/16/2016 الساعة 02:28
مرحبًا ، كيفية إزالة الصف المحدد في dataGridVIew من dataGridVIew و phpMyAdmin.

PhpMyAdmin؟ هذا مجرد غلاف للعمل مع قاعدة البيانات ، هل يمكن أن توضح؟

نيكولاي
09/18/2016 الساعة 02:24
تحتاج إلى إزالة الصف المحدد من DataGridView ومن قاعدة البيانات.

مشرف
09/19/2016 الساعة 07:00
كيفية حذف صف في قاعدة بيانات Mysql - مقال مضاف.

نيكولاي
09/20/2016 الساعة 09:20
شكرا جزيلا.

ديما
09/20/2016 الساعة 10:24
مرحبا هل يمكنك من هنالا تنفذ عبر DataGridView ، ولكن عبر ComboBox؟ إذا كان الأمر كذلك ، فكيف؟ شكرا لك.

مشرف
09/22/2016 الساعة 03:21
أهلا. مثال:

GENNADY
09/22/2016 الساعة 18:25
لماذا أدخل النص التالي في قاعدة البيانات System.Windows.Forms.TextBox ، نص: ge

بالمناسبة ، هذا (ge) في النهاية هو جين مكتوب ، على الرغم من أن النص محدد في إعدادات الجدول. يجب أن تكون كلمة الجين مناسبة أكثر ، أحضر هذا الجدول إلى برنامجي واتضح أنه يعرض لي كل هذا النص غير الضروري

مشرف
09.24.2016 الساعة 04:17
على الأرجح ، تمت كتابة استعلام SQL بشكل غير صحيح ، على سبيل المثال:

في textBox1 ، أدخل الاسم: Gena.

استعلام SQL: "إدراج في قيم اسم الجدول (textBox1، ..)"؛ النتيجة: System.Windows.Forms.TextBox

وتحتاج إلى تمرير: "إدراج في قيم اسم الجدول (textBox1.Text، ..)" ؛
النتيجة: الجين

GENNADY
09.24.2016 الساعة 18:41
هذه طريقة العمل. شكرا

سيرجي
09/25/2016 الساعة 11:51
أهلا. كيف يتم تنفيذ الإضافة إلى قاعدة البيانات عبر TextBox؟

مشرف
09/26/2016 الساعة 20:53
كل شيء هو نفسه من حيث المبدأ. على سبيل المثال ، لنأخذ المثال الأخير ، حيث تحتاج:

// إنشاء معلمات وإضافتها إلى المجموعة cmd.Parameters.AddWithValue ("@ Name"، textBox1.Text) ؛ cmd.Parameters.AddWithValue ("@ LastName"، textBox2.Text) ؛

الآن المعلمات: Name و LastName تلقي القيم التي تم إدخالها في مربعات النص ونقلها إلى قاعدة البيانات

لينارا
09/27/2016 الساعة 17:45
مرحبًا ، كيف يتم تمييز الصف المميز في dataGridVIew و phpMyAdmin؟

مشرف
09/29/2016 الساعة 02:06
لا أعرف كيف يمكن عمل السطر المميز في phpMyAdmin. وفي dataGridView ، على سبيل المثال ، يمكن القيام بذلك باستخدام حدث SelectionChanged.

PSH
09/30/2016 الساعة 03:48
2 لينارا:
إذا كانت هذه هي الطريقة التي تريد تحرير السلاسل بها ، فاختر أداة مثل HediSQL ، وقم بتعديل وتعديل السلاسل.

2admin
يوم جيد! شكرا على المواد - كل شيء مبين ببرود شديد)
السؤال: أقوم بإضافة البيانات باستخدام هذا الاستعلام (إنه اختبار واحد):

String sql = "INSERT INTO users (` FIO`، `Tour`،` Count`، `Cost`،` Date`، `Passport`،` Birth`) VALUES ("Kolyan"، "Moscow"، "1 + 1 "، 1100،" 2011-11-11 "،" 1111 1111 "،" 11/9/1900 ") ؛" ؛

يتم إدخال البيانات كل شيء على ما يرام ، ولكن في قاعدة البيانات (mysql) بدلاً من الأبجدية السيريلية هناك "؟؟؟؟".

يقول الاستوديو المرئي أن System.String عبارة عن تسلسل Unicode.

حاول أيضًا:

تغيير قاعدة البيانات `test` COLLATE" koi8r_general_ci "؛ ALTER TABLE `users` COLLATE =" koi8r_general_ci "؛ ALTER DATABASE `test` COLLATE" utf8_unicode_ci "؛ ALTER TABLE `users` COLLATE =" utf8_unicode_ci "؛

لكنها لا تساعد ..
ما يمكن ان يكون خطأ؟ ترميز مختلف لـ VS و DB؟ أو ماذا؟
يمكن أن ترسل ما تقرأ / تغيير.
شكرا لك

مشرف
01.10.2016 الساعة 09:49
أهلا.

في قاعدة البيانات (وفي الجدول) يكون الترتيب هو utf_general_ci

هل توجد مثل هذه المقارنة؟ ربما utf8_general_ci؟

عادة ، يتم إنشاء قاعدة بيانات Mysql عن طريق اختيار مقارنة utf8_general_ci ، لذلك لا توجد مشاكل مع الأبجدية السيريلية ، ما لم يكن ، بالطبع ، يأتي العميل إلى الخادم.

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

عند الاتصال عبر .net ، يستخدم الموصل (الافتراضي) latin1 ، لذلك تحتاج أحيانًا إلى تحديد تشفير utf8 بشكل صريح في سلسلة الاتصال:

MySqlConnection mycon ؛ mycon = MySqlConnection جديد ("الخادم = 127.0.0.1 ؛ uid = vasya ؛ pwd = 123 ؛ قاعدة البيانات = اختبار ؛ Charset = utf8 ؛") ؛ // MySqlConnectionStringBuilder: mysqlCSB.CharacterSet = "utf8" ؛

PSH
01.10.2016 الساعة 11:34
أنت على حق ، وصفت نفسك ، utf8_general_ci!
نعم لقد ساعدت ؛ Charset = utf8؛
شكرا جزيلا!

سيرجي
10/02/2016 الساعة 11:02
شكرا على مثال العمل المطلوب. سؤال
لقد أنشأت حقلاً نصيًا أود إدخال عنوان IP الخاص بقاعدة البيانات فيه ، لكنني لا أعرف كيفية استبدال هذه البيانات هنا

سلسلة conStr = " [بريد إلكتروني محمي]؛ المستخدم = اختبار ؛ "+
"قاعدة البيانات = اختبار ؛ كلمة المرور = اختبار ؛" ؛
من فضلك قل لي كيفية إدراج البيانات من الحقول النصية في نموذج windows في هذا البناء….

مشرف
10/03/2016 الساعة 11:50
"[بريد إلكتروني محمي]؛ المستخدم = ...
بشكل عام ، من الأفضل استخدام الخصائص ، كما في هذه المقالة ، أو طريقة String.Format () بدلاً من هذه السلسلة.

OLGA2203
05/15/2017 الساعة 20:14

سلسلة الاتصال = "الخادم = 127.0.0.1 ؛ المنفذ = 3306 ؛ قاعدة البيانات = قاعدة ؛ مصدر البيانات = المضيف المحلي ؛ المستخدم = الجذر ؛" ؛ MySqlConnection con = new MySqlConnection (Connect) ؛ con.Open () ؛ // تأسيس اتصال بقاعدة البيانات. MySqlCommand cmd = جديد MySqlCommand () ؛ cmd.CommandText = @ ”INSERT INTO tovar (المعرف ، الفئة ، الاسم ، العلامة التجارية ، السعر ، الصورة ، الحجم ، اللون ، المادة ، العدد) VALUES (pr،Category،Name،TradeMark،Price،Photo، @ الحجم ، @ اللون ، @ المواد ، @ العد) "؛ cmd.Parameters.AddWithValue (“@ pr” ، عداد) ؛ cmd.Parameters.AddWithValue (“@ Category”، comboBox1.SelectedItem.ToString ())؛ cmd.Parameters.AddWithValue (“@ Name”، textBox1.Text) ؛ cmd.Parameters.AddWithValue (“@ TradeMark” ، textBox2.Text) ؛ cmd.Parameters.AddWithValue (“@ Price”، Convert.ToInt32 (textBox4.Text)) ؛ cmd.Parameters.AddWithValue (“@ Photo”، textBox3.Text)؛ cmd.Parameters.AddWithValue (“@ Size”، textBox6.Text)؛ cmd.Parameters.AddWithValue (“@ Color”، textBox5.Text) ؛ cmd.Parameters.AddWithValue (“@ Material”، ​​textBox8.Text) ؛ cmd.Parameters.AddWithValue (“@ Count”، Convert.ToInt32 (textBox7.Text)) ؛ cmd.Connection = يخدع ؛ cmd.ExecuteNonQuery () ، MessageBox.Show ("كانت الإضافة ناجحة" ، "تمت الإضافة بنجاح" ، MessageBoxButtons.OK ، MessageBoxIcon.Asterisk) ؛

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

آخر تحديث: 1.11.2015

يستخدم التعبير "INSERT" لإضافة البيانات:

$ query = "INSERT INTO tovars VALUES (NULL،" سامسونج جالاكسي III "،" Samsumg ")" ؛

يُدرج تعبير INSERT صفًا واحدًا في الجدول. بعد كلمة رئيسية INTO هو اسم الجدول ، وبعد القيم ، يشار إلى مجموعة القيم لجميع الأعمدة بين قوسين. نظرًا لأن لدينا ثلاثة أعمدة في الجدول ، فإننا نشير إلى ثلاث قيم.

نظرًا لأنه في الموضوع السابق ، عند إنشاء الجدول ، حددنا ترتيب الأعمدة التالي: id ، name ، company ، في هذه الحالة يتم تمرير قيمة NULL لعمود id ، و "Samsung Galaxy III" للاسم ، و "Samsumg " لاجل الشركه.

نظرًا لتعريف عمود المعرف على أنه AUTO_INCREMENT ، لا نحتاج إلى تحديد قيمة رقمية محددة له ، ويمكننا تمرير قيمة NULL وستقوم MySQL بتعيين القيمة المتاحة التالية للعمود.

الآن دعونا نلقي نظرة على إضافة البيانات بمثال. لنقم بإنشاء ملف create.phpبالمحتوى التالي:

تمت إضافة البيانات"؛) // أغلق الاتصال mysqli_close ($ link) ؛)؟>

إضافة نموذج جديد

أدخل النموذج:

الصانع:

هنا ، يتم دمج رمز التفاعل مع قاعدة البيانات مع وظائف النماذج: باستخدام النموذج ، نقوم بإدخال البيانات لإضافتها إلى قاعدة البيانات.

الأمن و MySQL

هنا استخدمنا وظيفة mysqli_real_escape_string (). إنه يعمل على هروب الأحرف في سلسلة ، والتي يتم استخدامها بعد ذلك في استعلام SQL... يستغرق كائن اتصال وسلسلة ليتم تخطيها كمعلمات.

وبالتالي ، فإننا في الواقع نطبق حرف الهروب مرتين: أولاً للتعبير sql باستخدام الدالة mysqli_real_escape_string () ، ثم بالنسبة لـ html باستخدام دالة htmlentities (). سيسمح لنا ذلك بحماية أنفسنا من نوعين من الهجمات في وقت واحد: هجمات XSS وحقن SQL.

في هذه المقالة ، سوف نحلل ربما بعضًا من أهمها استفسارات SQL... هذه استعلامات لإضافة وإزالة السجلات من جدول قاعدة البيانات... منذ ذلك الحين ، غالبًا ما يكون ذلك ضروريًا إضافة سجلات جديدة إلى الجدول، ونفعل ذلك في الوضع التلقائي، فهذه المادة مطلوبة للدراسة.

للبدأ استعلام إلحاق SQL دخول جديدعلى الطاولة:

أدخل إلى المستخدمين (تسجيل الدخول ، اجتياز) قيم ("TestUser"، "123456")

عند إضافة إدخال ، يكون الأمر الأول هو " ادخل في"، ثم اسم الجدول الذي ندرج فيه السجل. وبعد ذلك تأتي أسماء الحقول التي نريد ملؤها بين قوسين. ثم بين قوسين بعد الكلمة" القيم"نبدأ في سرد ​​قيم تلك الحقول التي حددناها. بعد تنفيذ هذا الاستعلام ، سيظهر سجل جديد في جدولنا.

في بعض الأحيان يستغرق الأمر تحديث سجل في جدول، لهذا هناك ما يلي استعلام SQL:

تحديث المستخدمين SET login = "TestUser2" ، تمرير = "1234560" حيث تسجيل الدخول = "TestUser"

هذا الاستعلام أكثر تعقيدًا ، لأنه يحتوي على البنية " أين"، ولكن أقل قليلاً. يأتي الأمر أولاً" تحديث"متبوعًا باسم الجدول متبوعًا بـ" تعيين"نصف قيم جميع الحقول التي نريد تغييرها. سيكون الأمر بسيطًا ، لكن السؤال الذي يطرح نفسه:" ما هو السجل الذي يجب تحديثه؟". لهذا هناك" أين". في هذه الحالة ، نقوم بتحديث السجل ، الحقل" تسجيل الدخول"ما يهم" TestUser". يرجى ملاحظة أنه إذا كان هناك العديد من هذه السجلات ، إذن بالتأكيد سيتم تحديث كل شيء! هذا مهم جدًا لفهمه ، وإلا فإنك تخاطر بفقدان طاولتك.

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

تحديث المستخدمين SET login = "TestUser2" ، تمرير = "1234560" WHERE id< 15 AND login="TestUser"

ال استعلام SQLسيتم تحديث هذه السجلات بطاقة تعريفوهي أقل 15 وحقل " تسجيل الدخول"لها معنى" TestUser". أتمنى أن تكون قد توصلت إلى التصميم." أين"لأنها مهمة للغاية. بالضبط." أين"تستخدم عندما إحضار السجلات من الجداول، وهذه هي المهمة الأكثر استخدامًا عند العمل مع قواعد البيانات.

وأخيرا ، واحدة بسيطة استعلام SQL لحذف السجلات من جدول:

حذف من المستخدمين حيث تسجيل الدخول = "TestUser2"

بعد الأمر " حذف من"هناك اسم الجدول الذي تريد حذف السجلات فيه. بعد ذلك ، نصف بناء" WHERE ". أين"، يمكن حذف أي عدد منها.


سوف يعتمد الدرس على شكل تعليق مطلوب على أي موقع تقريبًا.

الخطوةالاولى: إنشاء قاعدة البيانات بتنسيق MySQL

نفتح phpMyAdmin(مدرج في الحزمة الأساسية دنوير`أ) ، وأنشئ قاعدة بالاسم" test_base"، حدد الترميز" cp1251_general_ci".

الخطوة الثانية: إنشاء جدول بتنسيق MySQLعبر استفسارات SQL

يمكنك بالطبع إنشاء جدول باستخدام الأدوات القياسية phpMyAdmin، لكن سيكون هيكل الجدول الذي تم إنشاؤه مرئيًا بوضوح.

إنشاء جدول باسم " test_table"وستة حقول بأسماء:
"الاسم" - سيتم تخزين أسماء المستخدمين هنا ؛
"البريد الإلكتروني" - سيتم تخزين العناوين هنا الصناديق الإلكترونيةالمستخدمين ؛
"موضوع" - سيتم تخزين موضوع الرسالة هنا ؛
"رسالة" - سيتم تخزين الرسائل هنا ؛
"البيانات" - سيتم تخزين تاريخ إرسال الرسالة هنا ؛
"id" - رقم تعريف السجل (السطر) ، حقل المفتاح.

استعلام SQL:
إنشاء جدول test_table (
معرف int (11) ليس فارغًا auto_increment ،
اسم varchar (255) ليس فارغًا ،
البريد الإلكتروني varchar (255) ليس فارغًا ،
موضوع varchar (255) ليس فارغًا ،
نص الرسالة ليس فارغًا ،
تاريخ البيانات ليس فارغًا ،
المفتاح الأساسي (المعرف)
);

الخطوة الثالثة: إنشاء النموذج

index.html:

نموذج حفظ MySQL

مثال على نموذج مع حفظ البيانات في MySQL

























ارسال طلب
اسم:
البريد الإلكتروني:
موضوع الرسالة:
رسالة:
























الخطوة الرابعة: إنشاء معالج النموذج " save_form.php"مع حفظ البيانات المستلمة بتنسيق MySQL

save_form.php:





/ * جدول MySQL حيث سيتم تخزين البيانات * /
جدول $ = "test_table" ؛

/ * إنشاء اتصال * /

/ * تحديد التاريخ الحالي * /
$ cdate = التاريخ ("Y-m-d") ؛

/ * إنشاء استعلام لإدراج المعلومات في الجدول
الاسم ... التاريخ - اسم الحقول المحددة في قاعدة البيانات ؛
في $ _POST ["test_name"] ... $ _POST ["test_mess"] - تحتوي هذه المتغيرات على البيانات الواردة من النموذج * /
$ query = "INSERT INTO $ table SET name =" ". $ _ POST [" test_name "]." "، email =" ". $ _ POST [" test_mail "]." "،
السمة = "". $ _ POST ["test_theme"]. "" ، message = "". $ _ POST ["test_mess"]. "" ، البيانات = "$ cdate" "؛

/ * اغلاق الاتصال * /
mysql_close () ،

/ * في حالة الحفظ الناجح ، اعرض رسالة ورابط إرجاع * /
صدى صوت ("


تم حفظ المعلومات بنجاح!



عد
");

الخطوة الخامسة: إخراج البيانات المحفوظة " view_data.php"

view_data.php:

/ * الاتصال بقاعدة البيانات * /
$ hostname = "localhost" ؛ // اسم / مسار الخادم ، مع MySQL
اسم المستخدم $ = "الجذر" ؛ // اسم المستخدم (افتراضي Denwer هو "الجذر")
كلمة مرور دولار = "" ؛ // كلمة مرور المستخدم (لا توجد كلمة مرور في Denwer افتراضيًا ، يمكن ترك هذه المعلمة فارغة)
$ dbName = "test_base" ؛ // اسم قاعدة البيانات


جدول $ = "test_table" ؛

/ * إنشاء اتصال * /
mysql_connect ($ hostname، $ username، $ password) أو die ("لا يمكنني إنشاء اتصال")؛

/ * حدد قاعدة البيانات. إذا حدث خطأ ، اطبعه * /
mysql_select_db ($ dbName) أو die (mysql_error ()) ؛

/ * نقوم بإنشاء طلب لاستخراج البيانات من الحقول "الاسم" ، "البريد الإلكتروني" ، "الموضوع" ،
"message" ، "بيانات" لـ "test_table" * /
الاستعلام $ = "معرف التحديد ، الاسم ، البريد الإلكتروني ، الموضوع ، الرسالة ، البيانات من جدول $" ؛

/ * نقوم بتنفيذ الطلب. إذا حدث خطأ ، قم بعرضه. * /


صدى صوت ("

إخراج البيانات من MySQL

إخراج البيانات المحفوظة مسبقًا من جدول MySQL










");



صدى صوت "

\ ن "؛
صدى صوت " \ ن "؛
صدى صوت " \ ن "؛
صدى صوت " \ ن "؛
صدى صوت " \ ن "؛
صدى صوت " \ ن "؛
صدى صوت " \ ن\ ن "؛
}

صدى صوت ("

# تاريخ التطبيق أسماء المستخدمين مستخدمو البريد الإلكتروني موضوع الرسالة رسائل المستخدم
". $ row [" id "]."". $ row [" data "]."". $ row [" name "]."". $ row [" email "]."". $ row [" theme "]."". $ row [" message "]."
\ ن ")؛

/ * اغلاق الاتصال * /
mysql_close () ،

الخطوة السادسة: إزالة السجلات من قاعدة البيانات " del_data.php"

del_data.php:

/ * الاتصال بقاعدة البيانات * /
$ hostname = "localhost" ؛ // اسم / مسار الخادم ، مع MySQL
اسم المستخدم $ = "الجذر" ؛ // اسم المستخدم (افتراضي Denwer هو "الجذر")
كلمة مرور دولار = "" ؛ // كلمة مرور المستخدم (لا توجد كلمة مرور في Denwer افتراضيًا ، يمكن ترك هذه المعلمة فارغة)
$ dbName = "test_base" ؛ // اسم قاعدة البيانات

/ * جدول MySQL الذي يخزن البيانات * /
جدول $ = "test_table" ؛

/ * إنشاء اتصال * /
mysql_connect ($ hostname، $ username، $ password) أو die ("لا يمكنني إنشاء اتصال")؛

/ * حدد قاعدة البيانات. إذا حدث خطأ ، اطبعه * /
mysql_select_db ($ dbName) أو die (mysql_error ()) ؛

/ * إذا تم النقر على رابط الحذف ، فاحذف الإدخال * /
$ del = $ query = "حذف من $ table حيث (id =" $ del ")"؛
/ * نقوم بتنفيذ الطلب. إذا حدث خطأ ، قم بعرضه. * /
mysql_query ($ query) أو die (mysql_error ()) ؛



/ * نقوم بتنفيذ الطلب. إذا حدث خطأ ، قم بعرضه. * /
$ res = mysql_query ($ query) أو die (mysql_error ()) ؛

$ row = mysql_num_rows ($ res) ؛

/ * عرض البيانات من الجدول * /
صدى صوت ("

إغراق وحذف البيانات من MySQL

عرض وحذف البيانات المحفوظة مسبقًا من جدول MySQL











");

/ * حلقة لإخراج البيانات من قاعدة بيانات لحقول محددة * /
while ($ row = mysql_fetch_array ($ res)) (
صدى صوت "

\ ن "؛
صدى صوت " \ ن "؛
صدى صوت " \ ن "؛
صدى صوت " \ ن "؛
صدى صوت " \ ن "؛
صدى صوت " \ ن "؛
صدى صوت " \ ن "؛
/ * إنشاء رابط لحذف الحقل * /
صدى صوت " \ ن "؛
صدى صوت "\ ن "؛
}

صدى صوت ("

# تاريخ التطبيق أسماء المستخدمين مستخدمو البريد الإلكتروني موضوع الرسالة رسائل المستخدم حذف
". $ row [" id "]."". $ row [" data "]."". $ row [" name "]."". $ row [" email "]."". $ row [" theme "]."". $ row [" message "]."حذف
\ ن ")؛

/ * اغلاق الاتصال * /
mysql_close () ،

الخطوة السابعة: تحرير وتحديث السجلات في قاعدة البيانات " update_data.php"

update_data.php:

/ * الاتصال بقاعدة البيانات * /
$ hostname = "localhost" ؛ // اسم / مسار الخادم ، مع MySQL
اسم المستخدم $ = "الجذر" ؛ // اسم المستخدم (افتراضي Denwer هو "الجذر")
كلمة مرور دولار = "" ؛ // كلمة مرور المستخدم (لا توجد كلمة مرور في Denwer افتراضيًا ، يمكن ترك هذه المعلمة فارغة)
$ dbName = "test_base" ؛ // اسم قاعدة البيانات

/ * جدول MySQL الذي يخزن البيانات * /
جدول $ = "test_table" ؛

/ * إنشاء اتصال * /
mysql_connect ($ hostname، $ username، $ password) أو die ("لا يمكنني إنشاء اتصال")؛

/ * حدد قاعدة البيانات. إذا حدث خطأ ، اطبعه * /
mysql_select_db ($ dbName) أو die (mysql_error ()) ؛

/ * إذا تم الضغط على زر التعديل ، قم بإجراء التغييرات * /
إذا (@ $ submit_edit) (
$ query = "UPDATE $ table SET name =" $ test_name "، البريد الإلكتروني =" $ test_mail "، السمة =" $ test_theme "، الرسالة =" $ test_mess "WHERE id =" $ update "" ؛
/ * نقوم بتنفيذ الطلب. إذا حدث خطأ ، قم بعرضه. * /
mysql_query ($ query) أو die (mysql_error ()) ؛
}

/ * إضافة قاعدة البيانات بأكملها إلى المتغير $ res * /
استعلام دولار = "حدد * من جدول دولار" ؛
/ * نقوم بتنفيذ الطلب. إذا حدث خطأ ، قم بعرضه. * /
$ res = mysql_query ($ query) أو die (mysql_error ()) ؛
/ * معرفة عدد السجلات في قاعدة البيانات * /
$ row = mysql_num_rows ($ res) ؛

/ * عرض البيانات من الجدول * /
صدى صوت ("

تحرير وتحديث البيانات

تحرير وتحديث البيانات في جدول MySQL


");

/ * حلقة لإخراج البيانات من قاعدة بيانات لحقول محددة * /
while ($ row = mysql_fetch_array ($ res)) (
صدى صوت "

\ ن "؛
صدى صوت " \ ن "؛
صدى صوت " \ ن "؛
صدى صوت " \ ن "؛
صدى صوت " \ ن "؛
صدى صوت "\ ن "؛
صدى صوت " \ ن "؛
صدى صوت "\ ن "؛
صدى صوت " \ ن "؛
صدى صوت "\ ن "؛
صدى صوت " \ ن "؛
صدى صوت "\ ن "؛
صدى صوت " \ ن "؛
صدى صوت "\ ن "؛
صدى صوت " \ ن "؛
صدى صوت "
# ". $ row [" id "]."
". $ row [" data "]."
اسم المستخدم:
البريد الالكتروني للمستخدم:
موضوع الرسالة:
رسالة:
\ n \ n "؛
}

/ * اغلاق الاتصال * /
mysql_close () ،

حسنًا ، هذا كل شيء ، تشفير جيد: 1133:

_________________________________

في هذه المقالة ، سننظر في كيفية استخدام PHP لإدراج صفوف في قاعدة بيانات MySQL.

الخطوة 1 - إنشاء الجدول

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

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

وهذا هو الأكثر خطوه سهلهوالتي يمكن استخدامها للجدول والحصول عليها معلومة اضافيةحول هيكل الجداول / قواعد البيانات.

خيارات العمود:

  • الاسم هو اسم العمود الذي يظهر أعلى الجدول.
  • النوع - نوع العمود. على سبيل المثال ، اخترنا varchar لأننا سنقوم بإدخال قيم سلسلة.
  • الطول / القيم - تُستخدم للإشارة إلى الحد الأقصى للطول الذي يمكن أن يكون لإدخال في هذا العمود.
  • الفهرس - استخدمنا الفهرس "الأساسي" لحقل "المعرف". يوصى باستخدام عمود واحد فقط كمفتاح أساسي عند إنشاء جدول. يتم استخدامه لسرد السجلات في جدول وهو مطلوب عند إعداد جدول. لقد حددت أيضًا "A_I" ، والتي تعني "زيادة تلقائية" - المعلمة الخاصة بالتعيين التلقائي لعدد السجلات (1،2،3،4 ...).
    انقر فوق الزر "حفظ" وسيتم إنشاء الجدول.

الخطوة الثانية. كتابة كود PHP لإدخال البيانات في MySQL.

الخيار 1 - طريقة MySQLi

تحتاج أولاً إلى إنشاء اتصال بقاعدة البيانات. بعد ذلك ، نستخدم استعلام SQL INSERT. مثال على الكود الكامل:

". mysqli_error ($ conn) ؛) mysqli_close ($ conn) ؛؟>

الجزء الأول من الكود (الأسطر 3 - 18) مخصص للاتصال بقاعدة البيانات.

لنبدأ بالسطر 19:

$ sql = "أدخل الطلاب (الاسم ، الاسم الأخير ، البريد الإلكتروني) القيم (" Thom "،" Vial "،" [بريد إلكتروني محمي]")";

يقوم بإدراج البيانات في قاعدة بيانات MySQL. INSERT INTO عبارة تضيف بيانات إلى الجدول المحدد. في مثالنا ، تتم إضافة البيانات إلى جدول الطلاب.

يأتي بعد ذلك تعداد الأعمدة التي تُدرج فيها القيم: الاسم ، والاسم الأخير ، والبريد الإلكتروني. ستتم إضافة البيانات بالترتيب الموضح. إذا كتبنا (البريد الإلكتروني ، الاسم الأخير ، الاسم) ، فقد تمت إضافة القيم بترتيب مختلف.

الجزء التالي هو مشغل VALUES. هنا نحدد قيم الأعمدة: name = Thom، lastname = Vial، email = [بريد إلكتروني محمي]

أجرينا طلبًا باستخدام كود PHP. الخامس كود البرنامجيجب اقتباس استعلامات SQL. يتحقق الجزء التالي من الكود (الأسطر 20-22) مما إذا كان طلبنا ناجحًا:

if (mysqli_query ($ conn، $ sql)) (صدى "سجل جديد تم إنشاؤه بنجاح"؛)

يعرض هذا الرمز رسالة حول إكمال الطلب بنجاح.

ويعرض الجزء الأخير (22-24 سطرًا) إشعارًا إذا لم يكن الطلب ناجحًا:

آخر (صدى "خطأ:". $ sql. "
". mysqli_error ($ conn) ؛)

الخيار 2 - طريقة كائن بيانات PHP (PDO)

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

$ the_Object-> the_Method ()؛

يتيح لك PDO "تحضير" تعليمات برمجية SQL قبل تنفيذها. يتم تقييم استعلام SQL و "تصحيحه" قبل تشغيله. على سبيل المثال ، يمكن تنفيذ أبسط هجوم حقن SQL ببساطة عن طريق حقن SQL في حقل النموذج. على سبيل المثال:

نظرًا لأن هذا هو SQL صحيحًا نحويًا ، فإن الفاصلة المنقوطة تجعل DROP DATABASE user_table استعلام SQL جديدًا ويتم إسقاط جدول المستخدم. لا تسمح التعبيرات المعدة (المتغيرات المرتبطة) بالفواصل المنقوطة وعلامات الاقتباس لإكمال الاستعلام الأصلي ، لذلك لن يتم تنفيذ أمر DROP DATABASE أبدًا.

لاستخدام البيانات المعدة ، تحتاج إلى كتابة متغير جديد يستدعي طريقة Prepar () لكائن قاعدة البيانات.

الكود الصحيح:

getMessage () ، ) // تعيين المتغيرات للشخص الذي نريد إضافته إلى قاعدة البيانات $ first_Name = "Thom"؛ $ last_Name = "قارورة" ؛ $ email = " [بريد إلكتروني محمي]"؛ // إنشاء متغير يستدعي طريقة تحضير () لكائن قاعدة البيانات // يتم إدخال استعلام SQL الذي تريد تنفيذه كمعامل ، وتتم كتابة العناصر النائبة على النحو التالي: placeholder_name $ my_Insert_Statement = $ my_Db_Connection-> تحضير ( "INSERT INTO الطلاب (الاسم ، الاسم الأخير ، البريد الإلكتروني) VALUES (: first_name ،: last_name ،: email)") ؛ // الآن نخبر البرنامج النصي أي متغير يشير إلى كل عنصر نائب لاستخدام طريقة bindParam () // المعلمة الأولى هو العنصر النائب في العبارة أعلاه ، والثاني هو المتغير الذي يجب أن يشير إلى $ my_Insert_Statement-> bindParam (: first_name، $ first_Name)؛ $ my_Insert_Statement-> bindParam (: last_name، $ last_Name)؛ $ my_Insert_Statement-> bindParam (: email ، $ email) ؛ // تنفيذ الاستعلام باستخدام البيانات التي حددناها للتو // تقوم طريقة التنفيذ () بإرجاع TRUE إذا نجحت ، و FALSE إذا لم يكن كذلك ، مما يمنحك خيار طباعة رسالتك الخاصة إذا ($ my_Insert_Statement-> تنفيذ ()) (صدى "الارتداد الجديد rdcreated بنجاح "؛ ) else (echo "Unable to craduateecord" ؛) // في هذه المرحلة يمكنك تغيير بيانات المتغير وتشغيل استعلام لإضافة بيانات أخرى إلى بيانات قاعدة البيانات إلى قاعدة البيانات $ first_Name = "John"؛ $ last_Name = "سميث" ؛ $ email = " [بريد إلكتروني محمي]"؛ $ my_Insert_Statement-> execute ()؛ // التنفيذ مرة أخرى عند تغيير المتغير إذا ($ my_Insert_Statement-> execute ()) (echo" New Recordcreatedsuccessfully "؛) else (echo" Unable to craduateecord "؛

في الأسطر 28 و 29 و 30 نستخدم طريقة bindParam () لكائن قاعدة البيانات. هناك أيضًا طريقة bindValue () تختلف تمامًا عن الطريقة السابقة.

  • bindParam () - تقوم هذه الطريقة بتقييم البيانات عند الوصول إلى طريقة التنفيذ (). في المرة الأولى التي يصل فيها البرنامج النصي إلى طريقة التنفيذ () ، يلاحظ أن $ first_Name يطابق "Thom". ثم يقوم بربط هذه القيمة وتشغيل الطلب. عندما يصل البرنامج النصي إلى طريقة التنفيذ () الثانية ، فإنه يرى أن $ first_Name أصبح الآن "John". ثم يربط هذه القيمة ويبدأ الطلب مرة أخرى بقيم جديدة. من المهم أن تتذكر أننا حددنا استعلامًا مرة واحدة وأعدنا استخدامه مع بيانات مختلفة في نقاط مختلفة في البرنامج النصي.
  • bindValue () - تقوم هذه الطريقة بتقييم البيانات بمجرد الوصول إلى bindValue (). نظرًا لأن $ first_Name تم تعيينه على "Thom" ، عند الوصول إلى bindValue () ، سيتم استخدامه في كل مرة يتم استدعاء تنفيذ () في $ my_Insert_Statement.
    لاحظ أننا نعيد استخدام المتغير $ first_Name ونخصص قيمة جديدة له مرة أخرى. بعد تشغيل البرنامج النصي ، سيتم الإشارة إلى كلا الاسمين في قاعدة البيانات ، على الرغم من حقيقة أن المتغير $ first_Name في نهاية البرنامج النصي يحتوي على القيمة "John". تذكر أن PHP يتحقق من النص بأكمله قبل تشغيله.

إذا قمت بتحديث البرنامج النصي لاستبدال bindParam بـ bindValue ، فسوف تقوم بإدراج "Thom Vial" في قاعدة البيانات مرتين وسيتم تجاهل John Smith.

الخطوة 3 - تأكيد النجاح وحل المشكلات

إذا نجح طلب إدراج صفوف في قاعدة البيانات ، فسنرى الرسالة التالية:

القضاء على الأخطاء الشائعة

MySQLi

خلاف ذلك ، سيتم عرض رسالة خطأ. على سبيل المثال ، لنرتكب خطأً نحويًا واحدًا في الشفرة ، ونحصل على ما يلي:

الجزء الأول من الكود جيد ، تم إنشاء الاتصال بنجاح ، لكن فشل استعلام SQL.

"خطأ: INSERT INTO Students (الاسم ، اسم العائلة ، البريد الإلكتروني) VALUES (" Thom "،" Vial "،" [بريد إلكتروني محمي]") لديك خطأ في بناء جملة SQL الخاص بك ؛ تحقق من الدليل الذي يتوافق مع إصدار خادم MySQL الخاص بك لمعرفة بنية الحقوق لاستخدامها بالقرب من" (الاسم ، الاسم الأخير ، البريد الإلكتروني) VALUES ("Thom" ، "Vial" ، " [بريد إلكتروني محمي]")" في السطر 1 "

حدث خطأ في بناء الجملة تسبب في فشل البرنامج النصي. كان الخطأ هنا:

$ sql = "أدخل الطلاب (الاسم ، الاسم الأخير ، البريد الإلكتروني) القيم (" Thom "،" Vial "،" [بريد إلكتروني محمي]")";

لقد استخدمنا تقويم الأسنان المجعد بدلاً من الأقواس العادية. هذا غير صحيح وولد البرنامج النصي خطأ في بناء الجملة.

PDO

في السطر 7 من اتصال PDO ، يتم تعيين وضع الخطأ على "عرض كافة الاستثناءات". إذا تم تقديم قيمة مختلفة وفشل الطلب ، فلن نتلقى أي رسائل خطأ.

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

خطأ فادح: Uncaughtexception "PDOException" مع الرسالة "SQLSTATE: خطأ نحوي أو انتهاك وصول: 1064 لديك خطأ في بناء جملة SQL ؛ تحقق من الدليل الذي يتوافق مع إصدار خادم MySQL الخاص بك من أجل استخدام حقوق بناء الجملة بالقرب من "(الاسم ، الاسم الأخير ، البريد الإلكتروني) VALUES (" Thom "،" Vial "،" [بريد إلكتروني محمي]")" في السطر 1 "

مشاكل أخرى محتملة:

  • الأعمدة غير صحيحة (أعمدة غير موجودة أو خطأ إملائي في أسمائها).
  • يتم تعيين نوع واحد من القيم لعمود من نوع مختلف. على سبيل المثال ، إذا حاولت إدخال الرقم 47 في عمود الاسم ، فستتلقى خطأ. يجب عليك استخدام قيمة سلسلة في هذا العمود. ولكن إذا حددنا رقمًا بين علامتي اقتباس (على سبيل المثال ، "47") لكان ذلك ناجحًا ، لأنه سلسلة.
  • جرت محاولة لإدخال بيانات في جدول غير موجود. بالإضافة إلى خطأ إملائي في اسم الجدول.

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

استنتاج

في هذه المقالة ، تناولنا كيفية استخدام PHP لإدخال البيانات في قاعدة بيانات MySQL باستخدام MySQLi و PDO. وكذلك كيفية إصلاح الأخطاء الشائعة. ستكون هذه المعرفة مفيدة عند تعلم البرمجة وتطوير موقع الويب الخاص بك.

هذا المنشور هو ترجمة للمقال " كيفية استخدام PHP لإدراج البيانات في قاعدة بيانات MySQL"من إعداد فريق المشروع الودود