क्या तैयार वक्तव्य के साथ लेनदेन करने का कोई तरीका है?MySQLi तैयार वक्तव्य और लेनदेन
मेरा मतलब है मैं $mysqli->autocommit(FALSE);
और $mysqli->commit();
और $mysqli->rollback();
//Preparing the statment
$insert_stmt=$mysqli->prepare("INSERT INTO x VALUES(?,?)")
or die($mysqli->error);
//associate variables with the input parameters
$insert_stmt->bind_param("is", $my_number,$my_string); //i=integer
//Execute the statement multiple times....
for ($my_number = 1; $my_number <= 10; $my_number++)
{
$my_string="row ".$my_number;
$insert_stmt->execute() or die ($insert_stmt->error);
}
$insert_stmt->close();
मैं चारों ओर देखा है के साथ निम्न उदाहरण का उपयोग कर सकते हैं लेकिन तैयार बयान (नहीं पीडीओ) का उपयोग कर के किसी भी उदाहरण नहीं मिल सकता है: लेनदेन के साथ http://php.net/manual/en/mysqli.prepare.php, मुझे केवल यहां वर्णित उदाहरण मिलते हैं: http://book.opensourceproject.org.cn/lamp/mysql/mysqlstored/opensource/0596100892/mysqlspp-chp-13-sect-2.html जहां लेनदेन और तैयार वक्तव्य कभी-कभी मिश्रित नहीं होते हैं।
क्या उन्हें एक साथ उपयोग करना गलत होगा?
बहुत बहुत धन्यवाद :) क्या मुझे लूप के बाद त्रुटि की जांच नहीं करनी चाहिए, और त्रुटि पर रोलबैक (और अगर कोई त्रुटि नहीं है तो प्रतिबद्ध करें) – Yerel
यह mysqli पर पीडीओ के अन्य बड़े फायदों में से एक है - आप इसे सेट कर सकते हैं अपवाद फेंक दें और इस प्रकार त्रुटि कोडों को बार-बार जांचना नहीं है, जिसका मतलब है कि रोलबैक या प्रतिबद्धता का निर्णय बहुत सरल हो सकता है। – Charles
ओएमजी, यह मुझे बहुत मदद करता है। मैंने एक स्क्रिप्ट बनाई है जिसमें '5000 पंक्तियां आईएनएसईआरटी थीं, इसे खत्म करने में घंटों लग रहे थे। '$ Mysqli-> autocommit (FALSE) जोड़ना; 'और' $ mysqli-> प्रतिबद्ध();' इसे मिनटों में चलाया गया! :-) –