2010-04-06 12 views
41

में पीडीओ का उपयोग कर डेटाबेस बना सकता हूं, मैं एक वर्ग बनाना चाहता हूं जो पीडीओ का उपयोग MySQL से बातचीत करने के लिए करता है। क्या मैं पीडीओ का उपयोग कर एक नई MySQL तालिका बना सकता हूं?क्या मैं PHP

+2

शीर्षक डेटाबेस बनाने की बात करता है, लेकिन वह सवाल तालिका बनाने की बात करता है। ये दो बहुत ही अलग चीजें हैं। – Mawg

उत्तर

87

हाँ, आप कर सकते हैं की तरह एक नियमित रूप से क्वेरी चलाने पसंद है।

dsn भाग, जो पीडीओ कन्स्ट्रक्टर का पहला पैरामीटर है, के पास डेटाबेस नाम नहीं है। आप बस mysql:host=localhost का उपयोग कर सकते हैं। फिर, आपको सही विशेषाधिकार दिया गया है, आप डेटाबेस और उपयोगकर्ताओं, आदि बनाने के लिए नियमित SQL कमांड का उपयोग कर सकते हैं।

install.php से एक उदाहरण है, यह रूट के साथ लॉग इन करता है, डेटाबेस बनाता है, उपयोगकर्ता, और उपयोगकर्ता को नए बनाए गए डेटाबेस के लिए सभी विशेषाधिकार प्रदान करें:

<?php 

$host="localhost"; 

$root="root"; 
$root_password="rootpass"; 

$user='newuser'; 
$pass='newpass'; 
$db="newdb"; 

    try { 
     $dbh = new PDO("mysql:host=$host", $root, $root_password); 

     $dbh->exec("CREATE DATABASE `$db`; 
       CREATE USER '$user'@'localhost' IDENTIFIED BY '$pass'; 
       GRANT ALL ON `$db`.* TO '$user'@'localhost'; 
       FLUSH PRIVILEGES;") 
     or die(print_r($dbh->errorInfo(), true)); 

    } catch (PDOException $e) { 
     die("DB ERROR: ". $e->getMessage()); 
    } 
?> 
+2

@thearchitect इस तरह का एक अच्छा जवाब है और स्वीकार नहीं किया जाता है? मैं निराश महसूस करता हूं :( –

+0

मेरी माफी ..... अब तक जवाब नहीं देखा गया है – Xerri

+0

बस ध्यान दें कि सीपीनल होस्टिंग योजनाओं पर, आप phpmyadmin या कमांड लाइन का उपयोग करके अपने डेटाबेस को देखने में सक्षम नहीं होंगे - यह जीता "MySQL डेटाबेस" नियंत्रण कक्ष के तहत सीपीनल में दिखाई नहीं दे रहा है। – Volomike

-1

हाँ, इसकी एक ही "तालिका बनाएं ..."

+1

पीडीओ कनेक्शन बनाते समय, आपको उस कनेक्शन को डेटाबेस के साथ सही से जोड़ना होगा? मैं सोच रहा था कि क्या इससे बचा जा सकता है या यदि डिफ़ॉल्ट mysql डेटाबेस का उपयोग करना खतरनाक होगा या अन्यथा यदि कोई खाली डेटाबेस बनाना है तो पीडीओ कनेक्ट हो सकता है। – Xerri

+0

@ हैम: यहां रूट उपयोगकर्ता और पासवर्ड क्या है? यह mysql उपयोगकर्ता आईडी और पासवर्ड सही नहीं है? – logan