English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
وظيفة mysqli_commit() تقديم صفقة
MySQL البياناتية أساسا لديه ميزة تسمى تقديم الصفقات التلقائية (إذا قمت بفتحها)، فإن التغييرات التي يتم إجراؤها في البياناتية يتم حفظها تلقائيًا؛ إذا قمت بإغلاقها، فإنه يجب حفظ التغييرات بشكل مباشر.
mysqli_commit();يحفظ الوظيفة العملية الحالية.
mysqli_commit($con, [$flags, $name]);
الترتيب | المدخلات والشرح |
---|---|
1 | con (ضروري) هذا هو objekt التوصيل مع Server MySQL. |
2 | flags (اختياري) يمكن أن تكون إحدى القيم التالية من المعادلات:
|
3 | name (اختياري) هذه هي قيمة الاسم، عند تحديدها، سيتم تنفيذ COMMIT /* name */. |
يُرجع函数 mysqli_commit() قيمة بولية، إذا كانت عملية الاستحضار النهائي ناجحة،true،وإلاfalse.
تم إدخال هذه الوظيفة لأول مرة في إصدار PHP 5، وهي متاحة في جميع الإصدارات الأعلى.
افترض أننا قمنا بإنشاء جدول يُدعى my_team في قاعدة بيانات mydb كما يلي-
CREATE TABLE my_team( ID INT PRIMARY KEY AUTO_INCREMENT, First_Name VARCHAR(255), Last_Name VARCHAR(255), Place_Of_Birth VARCHAR(255), Country VARCHAR(255) );
السجلات التالية توضحmysqli_commit();الاستخدامات الخاصة بالوظيفة (أسلوب عملية)
<?php //建立连接 $con = mysqli_connect("localhost", "root", "password", "mydb"); //将自动提交设置为false mysqli_autocommit($con, False); //将记录插入到my_team表中 mysqli_query($con, "insert into my_team values(1, 'Shikhar', 'Dhawan', 'Delhi', 'India')"); mysqli_query($con, "insert into my_team values(2, 'Jonathan', 'Trott', 'CapeTown', 'SouthAfrica')"); mysqli_query($con, "insert into my_team values(3, 'Kumara', 'Sangakkara', 'Matale', 'Srilanka')"); mysqli_query($con, "insert into my_team values(4, 'Virat', 'Kohli', 'Delhi', 'India')"); //验证表的内容 $result = mysqli_query($con, "SELECT * FROM my_team"); print_r($result); mysqli_commit($con); //إغلاق الاتصال mysqli_close($con); ?>
输出结果
mysqli_result Object ( [current_field] => 0 [field_count] => 5 [lengths] => [num_rows] => 4 [type] => 0 )
إذا قمت بتحقق من محتويات الجدول my_team، يمكنك مراقبة البيانات المحفوظة كما يلي-
mysql> select * from my_team; +----+------------+------------+----------------+-------------+ | ID | First_Name | Last_Name | Place_Of_Birth | Country | +----+------------+------------+----------------+-------------+ | 1 | Shikhar | Dhawan | Delhi | India | | 2 | Jonathan | Trott | CapeTown | SouthAfrica | | 3 | Kumara | Sangakkara | Matale | Sri Lanka | | 4 | Virat | Kohli | Delhi | India | +----+------------+------------+----------------+-------------+ 4 rows in set (0.00 sec)
الطريقة الموجهة للأشياء، بناءً على الجملة$con->commit();هذا هو مثال على هذه الوظيفة في نمط البرمجة الموجهة للأشياء;
//建立连接 $con = new mysqli("localhost", "root", "password", "mydb"); //الإعداد التلقائي للإرسال إلى الحالة الحالية $con->autocommit(FALSE); //将记录插入到my_team表中 $con->query( "insert into my_team values(1, 'Shikhar', 'Dhawan', 'Delhi', 'India')"); $con->query( "insert into my_team values(2, 'Jonathan', 'Trott', 'CapeTown', 'SouthAfrica')"); $con->query("insert into my_team values(3, 'Kumara', 'Sangakkara', 'Matale', 'Srilanka')"); $con->query("insert into my_team values(4, 'Virat', 'Kohli', 'Delhi', 'India')"); //验证表的内容 $result = $con->query("SELECT * FROM my_team"); print_r($result); //保存结果 $con->commit(); //إغلاق الاتصال $con -> close(); ?>
输出结果
mysqli_result Object ( [current_field] => 0 [field_count] => 5 [lengths] => [num_rows] => 4 [type] => 0 )
让我们再看另一个实例。 在这里,我们创建了一个表,关闭了自动提交选项,插入了一条记录并保存了更改。 保存之后,我们插入了另一条记录:
//建立连接 $con = mysqli_connect("localhost", "root", "password", "mydb"); mysqli_query($con, "Create table players (First_Name VARCHAR(255), Last_Name VARCHAR(255), Country VARCHAR(255));") //将自动提交设置为false mysqli_autocommit($con, False); //将记录插入到my_team表中 mysqli_query($con, "insert into players values('Shikhar', 'Dhawan', 'India');") mysqli_commit($con); mysqli_query($con, "insert into players values('Jonathan', 'Trott', 'SouthAfrica');") //إغلاق الاتصال mysqli_close($con); ?>
بسبب أننا لم نحفظ استعلام الإدراج السابق بعد تنفيذ البرنامج أعلاه، إذا قمت بتحقق players محتوى الجدول، يمكنك رؤية سطر واحد فقط، مثلما يلي -
mysql> select * from players; +------------+-----------+---------+ | First_Name | Last_Name | Country | +------------+-----------+---------+ | Shikhar | Dhawan | India | +------------+-----------+---------+ 1 سطر في مجموعة (0.00 ثانية)
<?php $connection = mysqli_connect("localhost", "root", "password", "mydb"); if (mysqli_connect_errno($connection)){ echo "فشل الاتصال بMySQL: " . mysqli_connect_error(); } mysqli_autocommit($connection,FALSE); mysqli_query($connection, "create table test(Name VARCHAR(255), Age INT)"); mysqli_query($connection, "INSERT INTO test VALUES ('Sharukh', 25)"); mysqli_query($connection, "INSERT INTO test VALUES ('Kalyan', 30)"); mysqli_commit($connection); mysqli_close($connection); ?>
بعد تنفيذ البرنامج أعلاه، إذا قمت بتحقق من جدولtestإذا كانت تحتوي على محتوى، يمكنك رؤية السجلات المضافة كالتالي -
mysql> select * from test; +---------+------+ | Name | Age | +---------+------+ | Sharukh | 25 | | Kalyan | 30 | +---------+------+ 2 سطر في مجموعة (0.00 ثانية)