اذهب إلى المحتوى

السؤال

نشر

اريد ان اعرف كيف اضيف قيمة المتغير للسطر هذا  c.execute("DELETE FROM names WHERE name =?") 

بدلا من علامة الاستفهام 

الكود وظيفته اضافة بعض الاسماء و حذف الاسم الذى دخله المستخدم

import sqlite3
name = input("Enter name that you want to delete: \n")

db = sqlite3.connect("names.db")
c = db.cursor()

c.execute("CREATE TABLE IF NOT EXISTS names(name TEXT)")
c.execute("INSERT INTO names(name) VALUES('omar')")
c.execute("INSERT INTO names(name) VALUES('ahmed')")
c.execute("INSERT INTO names(name) VALUES('mhmed')")
c.execute("DELETE FROM names WHERE name = ?")
data = c.execute("SELECT name FROM names")
for row in data:
    print(row)
db.commit()
db.close()

 

 

Recommended Posts

  • 0
نشر

لحذف صف من الجدول في مكتبة sqlite3، يمكنك استخدام الأمر DELETE FROM كما فعلت بالفعل. لكن لحذف صف معين، يجب تحديد الشرط الذي يحدد الصف الذي تريد حذفه. في حالتك، تستخدم علامة الاستفهام كبديل للقيمة التي ستقوم بتمريرها للشرط.

إذا أردت استبدال علامة الاستفهام بقيمة معينة، يمكنك تمرير القيمة المراد حذفها كجزء من العملية التحضيرية (Prepared Statement)، وذلك بتمرير القيمة كمتغير إضافي في الأمر execute. هذه الكود سيحل لك المشكله ببساطه :
 

import sqlite3

name_to_delete = input("Enter name that you want to delete: \n")

db = sqlite3.connect("names.db")
c = db.cursor()

c.execute("CREATE TABLE IF NOT EXISTS names(name TEXT)")
c.execute("INSERT INTO names(name) VALUES('omar')")
c.execute("INSERT INTO names(name) VALUES('ahmed')")
c.execute("INSERT INTO names(name) VALUES('mhmed')")
c.execute("DELETE FROM names WHERE name = ?", (name_to_delete,))
data = c.execute("SELECT name FROM names")
for row in data:
    print(row)

db.commit()
db.close()


في هذا الكود، يتم استخدام name_to_delete لتخزين الاسم الذي يريد المستخدم حذفه. ثم يتم تمرير هذا الاسم كقيمة للشرط في الأمر DELETE FROM بواسطة العلامة ?، ويتم تمرير القيمة المراد حذفها كمتغير إضافي في الدالة execute باستخدام tuple (name_to_delete,).

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...