Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

पीडीओ और डालने के दौरान कई मूल्य सेट बाध्यकारी - हाल ही में

सिद्धांत रूप में, ऐसा लग सकता है कि एक एकल कथन अधिक कुशल है क्योंकि आप MySQL सर्वर पर कई कॉल करने से बचते हैं, लेकिन वास्तविकता यह है कि यह एक माइक्रो-ऑप्टिमाइज़ेशन है और आप मुश्किल से किसी लाभ के लिए अपने कोड को अधिक जटिल बना रहे हैं।

तैयार बयानों के बारे में अच्छी बात यह है कि इसे एक बार तैयार किया जाता है और इसे कई बार निष्पादित किया जा सकता है। यह आपको पहले से ही SQL कथन को कई बार पार्स करने से बचाता है। बस एक लूप के बाहर एक स्टेटमेंट तैयार करें और फिर इसे लूप के अंदर निष्पादित करें।

$names = [['Joe', 'Smith'], ['Fred', 'Sampson'], ['Lisa', 'Pearce']];
$stmt = $pdo->prepare('INSERT INTO table (firstName, lastName) VALUES(?,?)');
foreach ($names as $name) {
    $stmt->execute($name);
}

यदि आप लेन-देन में पूरी बात लपेटते हैं जैसा कि टिप्पणियों में आपके सामान्य ज्ञान ने सुझाव दिया है तो एक बड़े बयान की तुलना में प्रदर्शन में कोई उल्लेखनीय अंतर नहीं है।

$names = [['Joe', 'Smith'], ['Fred', 'Sampson'], ['Lisa', 'Pearce']];
$stmt = $pdo->prepare('INSERT INTO people (firstName, lastName) VALUES(?,?)');
$pdo->beginTransaction();
foreach ($names as $name) {
    $stmt->execute($name);
}
$pdo->commit();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqli कोड और call_user_func_array () में दिखाई देने वाली त्रुटियां

  2. SQL कथन में शाब्दिक से पहले कोलन का क्या अर्थ है?

  3. कोडनिर्देशक में MYSQL एकाधिक सम्मिलित करें

  4. MySQL टेबल स्टेटमेंट

  5. MySQL में एक टेबल से दूसरी टेबल में डेटा कॉपी कैसे करें?