-2
SQLに新しいデータベースと新しいテーブルが存在しない場合は作成します。このコードを2回実行するとうまく動作しますが、初めて実行するときにテーブルが作成されません。 以下、私は助けてくださいテーブルを作成する方法データベースが存在しない場合は、PHPを使用してデータベースですか?
$dbhost = '7.0.0.1';
$dbuser = 'root';
$dbpass = '123';
$dbname = 'promo_gmail';
$maxcharinaline = 1000;
$delimeter = ',';
$usertb = "promo_userb";
$typetb = "promo_typeb";
// Now just insert the data one by one assuming its valid
{
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(!$conn)
{
die('Failed to connect to server: ' . mysql_error());
exit;
}
$db_selected = mysql_select_db($dbname);
if(!$db_selected)
{
$db_selected = "CREATE DATABASE $dbname";
}
mysql_query($db_selected,$conn);
$usertb1 = mysql_query("select 1 from $usertb LIMIT 1");
if($usertb1 == FALSE)
{
$usertb1 = "CREATE TABLE IF NOT EXISTS $usertb (uid INT(20) AUTO_INCREMENT UNIQUE KEY NOT NULL,name VARCHAR(40),email varchar(40) PRIMARY KEY NOT NULL)";
mysql_query($usertb1,$conn);
}
$typetb1 = mysql_query("select 1 from $typetb LIMIT 1");
if($typetb1 == FALSE)
{
$typetb1 = "CREATE TABLE IF NOT EXISTS $typetb (uid INT(20) , type ENUM('WEB','APP','AT') NOT NULL ,unsubscribe TINYINT(1) NOT NULL,bounce TINYINT(1) NOT NULL,complaint TINYINT(1) NOT NULL, FOREIGN KEY (uid) REFERENCES promo_user (uid) , PRIMARY KEY (uid,type))";
mysql_query($typetb1,$conn);
}
を使用していたコードです。
言い難いに変更されますスニペットが、確か 'するmysql_query($ db_selected、$ CONN)が' ''($ db_selected!)であれば内部の属している必要があります - 、そうでない場合は、あなたを常にデータベースの作成を試みているため、おそらくエラーが発生します。 'echo mysql_error($ conn)'でエラーをチェックする必要があります。その後、データベースを作成した後、mysql_select_db()を再度呼び出して、新しく作成したデータベースを選択する必要があります。それはおそらくそれが2回目の理由です。初めてdbが作成されたため、 'CREATE TABLE'を実行するとデータベースが選択されません。 –
<! - * mysql_ extensionは死んでいます。* - > – CD001
mysql _ *()関数は、何年も前に廃止され、PHP7で削除されました。それらは新しいコードに使用すべきではありません。 MySQLiまたはPDOはより適切な近代的な選択です –