次のPHPコードはデータベースを作成しますが、テーブルは作成しません。なぜ他のPHPコードは動作しないのですか?
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', 'password');
$db = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD);
$sql = "CREATE DATABASE Stackoverflow;";
$res = mysqli_query($db, $sql);
mysqli_close($db);
define('DB_DATABASE', 'Stackoverflow');
$db = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
$sql = file_get_contents("data.sql");
$res = mysqli_query($db, $sql);
このphpファイルはテーブルを作成します。
$db = 'Stackoverflow';
$host = 'localhost';
$user = 'root';
$pass = 'password';
$connection = new PDO(
"mysql:host=".$host.";dbname=".$db, $user, $pass,
[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC]
);
$sql = file_get_contents("data.sql");
$connection->exec($sql);
これらは私のdata.sqlにファイルの内容は以下のとおりです。
CREATE TABLE Booking_tbl (
BookingId int NOT NULL AUTO_INCREMENT,
ClassId int NOT NULL,
UserName varchar(140),
PRIMARY KEY(BookingId)
);
CREATE TABLE Class_tbl (
ClassId int NOT NULL AUTO_INCREMENT,
TeacherId int NOT NULL,
ClassName varchar(140) NOT NULL,
TimeSlot int NOT NULL,
SemesterId int NOT NULL,
PRIMARY KEY(ClassId)
);
CREATE TABLE Teacher_tbl (
TeacherId int NOT NULL AUTO_INCREMENT,
TeacherName varchar(140) NOT NULL,
PRIMARY KEY(TeacherId)
);
CREATE TABLE Semester_tbl (
SemesterId int NOT NULL AUTO_INCREMENT,
SemesterName varchar(50),
PRIMARY KEY (SemesterId)
);
私は最初のファイルを実行すると、それが正しくデータベースが作成されますが、それは私がそれを作成するテーブルを作成しませんデータベースに格納されます。なぜこれが起こっているのかについてのアイデアはありますか?
データベースへの接続が正しく行われたことを確認しましたか? SQLファイルの手動インポートは機能しますか? –
テーブルを作成するデータベースを選択しましたか? my_new_dbを使用します。 –
@MdMonjurUlHasanデータベースへの接続はわかりませんが、サーバーへの接続は正しく行われています。 – Rixwaan