2012-01-30 19 views
13

मैं डेटाबेस बनाना चाहता हूं। डीबी इस कोड के साथ क्यों नहीं बनाया गया है?php mysql डेटाबेस बनाते हैं यदि मौजूद नहीं है

$dbname = 'regulations_db'; 
    $con = mysql_connect("localhost","root","pass"); 
    if (!$con) 
    { 
     die('Could not connect: ' . mysql_error()); 
    } 
if (mysql_num_rows(mysql_query("SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '". $dbname ."'"))) { 
     echo "Database $dbname already exists."; 
    } 
    else { 
     mysql_query("CREATE DATABASE '". $dbname ."'",$con); 
     echo "Database $dbname created."; 
    } 

यह काम कर रहा है, लेकिन मुझे लगता है कि पहले एक सबसे अच्छा अभ्यास है:

if (mysql_query("CREATE DATABASE IF NOT EXISTS regulations_db",$con)) 
    { 
     echo "Database created"; 
    } 
    else 
    { 
     echo "Error creating database: " . mysql_error(); 
    } 

उत्तर

18

बस एक साधारण mysql_select_db() करते हैं और अगर परिणाम गलत है तो निर्माण के साथ आगे बढ़ें।

उदाहरण के तौर पर, the first answer here को एक और बहुत ही स्मार्ट स्टैक ओवरफ्लॉवर द्वारा देखें। इसे ठीक करने के

<?php 
// Connect to MySQL 
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); 
if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 

// Make my_db the current database 
$db_selected = mysql_select_db('my_db', $link); 

if (!$db_selected) { 
    // If we couldn't, then it either doesn't exist, or we can't see it. 
    $sql = 'CREATE DATABASE my_db'; 

    if (mysql_query($sql, $link)) { 
     echo "Database my_db created successfully\n"; 
    } else { 
     echo 'Error creating database: ' . mysql_error() . "\n"; 
    } 
} 

mysql_close($link); 
?> 
+0

अच्छा विचार। धन्यवाद! – erdomester

+1

अद्यतन: अब mysqli_select_db का उपयोग करना चाहिए, है ना? - "$ db_selected = mysqli_select_db ('my_db', $ link) दोहराने के लिए भी समझदारी होगी;" सफलता की स्थिति में (यानी अब यह काम करना चाहिए) - या आपने डेटाबेस का अस्तित्व जांचने के लिए इसका इस्तेमाल किया है और इसके लिए इसके लिए और आवश्यकता नहीं है? – Julix

4

तीन कदम: कनेक्ट करते

  1. डेटाबेस नाम निर्दिष्ट करें।
  2. आपका SQL कथन डेटाबेस बनाना चाहिए यदि php1 को पूर्ववत नहीं किया गया है।
  3. अपने कनेक्शन के लिए डिफ़ॉल्ट डेटाबेस बनाने के लिए mysqli_select_db ($ link, 'php1') पर कॉल करें।
+0

क्या वह दूसरा कोड नहीं है जो वह प्रभावी ढंग से वर्णन करता है? – Julix

संबंधित मुद्दे