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

एकाधिक प्रश्नों के लिए PDO समर्थन (PDO_MYSQL, PDO_MYSQLND)

जैसा कि मुझे पता है, PDO_MYSQLND प्रतिस्थापित PDO_MYSQL पीएचपी 5.3 में। भ्रमित करने वाली बात यह है कि नाम अभी भी है PDO_MYSQL . तो अब ND MySQL+PDO के लिए डिफ़ॉल्ट ड्राइवर है।

कुल मिलाकर, एक साथ कई प्रश्नों को निष्पादित करने के लिए आपको आवश्यकता होगी:

  • PHP 5.3+
  • mysqlnd
  • नकली तैयार बयान। सुनिश्चित करें कि PDO::ATTR_EMULATE_PREPARES 1 . पर सेट है (चूक)। वैकल्पिक रूप से आप तैयार बयानों का उपयोग करने से बच सकते हैं और $pdo->exec . का उपयोग कर सकते हैं सीधे।

निष्पादन का उपयोग करना

$db = new PDO("mysql:host=localhost;dbname=test", 'root', '');

// works regardless of statements emulation
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, 0);

$sql = "
DELETE FROM car; 
INSERT INTO car(name, type) VALUES ('car1', 'coupe'); 
INSERT INTO car(name, type) VALUES ('car2', 'coupe');
";

$db->exec($sql);

बयानों का उपयोग करना

$db = new PDO("mysql:host=localhost;dbname=test", 'root', '');

// works not with the following set to 0. You can comment this line as 1 is default
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, 1);

$sql = "
DELETE FROM car; 
INSERT INTO car(name, type) VALUES ('car1', 'coupe'); 
INSERT INTO car(name, type) VALUES ('car2', 'coupe');
";

$stmt = $db->prepare($sql);
$stmt->execute();

एक नोट:

नकली तैयार बयानों का उपयोग करते समय, सुनिश्चित करें कि आपने डीएसएन (5.3.6 से उपलब्ध)। अन्यथा कुछ अजीब एन्कोडिंग का उपयोग करने पर SQL इंजेक्शन की थोड़ी संभावना हो सकती है



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कमांड लाइन से MySQL डंप डाउनलोड करना

  2. दूसरा () उदाहरण – MySQL

  3. MySQL पर MySQLi के लाभ

  4. क्या नियमित अभिव्यक्ति का उपयोग करके MySQL में डेटा जांच को लागू करना संभव है?

  5. MySQL में सभी फंक्शन्स को लिस्ट करने के 2 तरीके