Nasıl php mysql veritabanı seçerim?

4 Cevap php

Bu kodu vardır:

               if(!mysql_connect($host,$user,$passwd)){
                    die("Hoops, error! ".mysql_error());
                }

Burada ... hiçbir hata.

                if(!mysql_select_db($db,$connect)){
                    $create_db = "CREATE DATABASE {$db}";
                    mysql_query($create_db,$connect);
                    mysql_query("USE DATABASE {$db}",$connect);
                }

..."no database selected" error from here. I would like to select database if it exists and if doesn't then create it and select it.

Neden benim kod doğru değil mi?

Şimdiden teşekkürler

4 Cevap

Nereye) (mysql_connect tarafından döndürülen değeri kaydediyorsunuz? Burada görmüyorum. Ben $ host, $ user, $ parola ve $ db düzgün vaktinden ayarlanır varsayalım. Ama düzgün ayarlanmış olmayabilir mysql_select_db bir param geçiyoruz.

$connect = mysql_connect($host,$user,$passwd);
if (!$connect) {
    die('Could not connect: ' . mysql_error());
}
if(!mysql_select_db($db,$connect)) ...

Seçebilirsiniz görmek için kontrol ederek başlayın without ilk sorguyu CREATE. Başlatmak için basit bir SELECT sorgusu sahipsiniz. Eğer bağlantı varsa, db seçin, ve SELECT sorgusu yürütmek, bu bir adımdır. Then CREATE sorgu deneyin. Bu işe yaramazsa, neredeyse kesinlikle izinleri meselesi.

Neden sadece yerine CREATE DATABASE IF NOT EXISTS sözdizimi kullanmak değil mi?

Bu gibi bir şey ...

  $con = mysql_connect('localhost');
  $sql = 'CREATE DATABASE IF NOT EXISTS {$db}';
  if (mysql_query($sql, $con)) {
    print("success.\n");
  } else {
    print("Database {$db} creation failed.\n");
  }
  if(!mysql_select_db($db,$connect)){
    print("Database selection failed.\n");
  }

Sen mysql_query dönüş değerini kontrol etmelisiniz () - bu aramaların halen varsa bu konuda bilemezsiniz başarısız:

if(!mysql_select_db($db,$connect)){
    if (!mysql_query("CREATE DATABASE $db", $connect)) {
        die(mysql_error());
    }

    if (!mysql_select_db($db, $connect)) {
        die(mysql_error());
    }
}

Satırı değiştirin

mysql_query($create_db,$connect);
mysql_query("USE DATABASE {$db}",$connect);

Karşı

mysql_query($create_db,$connect);
mysql_select_db($db);*

ve çalışması gerekir.