前提・実現したいこと
テーブルの初期化
エラーの改善
CREATE文でcreateUserData()のみ以下のエラーコードが出てしまう
発生している問題・エラーメッセージ
ERROR 1146 (42S02): Table 'book_log.userdata' doesn't exist
該当のソースコード
PHP
1<?php 2require_once __DIR__ . '/../lib/mysqli.php'; 3 4function dropTable($link, $table) 5{ 6 $sql = "DROP TABLE IF EXISTS {$table};"; 7 $result = mysqli_query($link, $sql); 8 9 if ($result) { 10 echo 'テーブルを削除しました' . PHP_EOL; 11 } else { 12 echo 'テーブルの削除に失敗しました' . PHP_EOL; 13 echo 'Error:' . mysqli_error($link) . PHP_EOL; 14 } 15} 16 17function createThreads($link) 18{ 19 20 $sql = <<<EOT 21 CREATE TABLE IF NOT EXISTS threads ( 22 id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, 23 title VARCHAR(255), 24 summary VARCHAR(255), 25 created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 26 ) DEFAULT CHARACTER SET=utf8mb4; 27 EOT; 28 29 $result = mysqli_query($link, $sql); 30 31 if ($result) { 32 echo 'テーブルを作成しました' . PHP_EOL; 33 } else { 34 echo 'テーブルの削除に失敗しました' . PHP_EOL; 35 echo 'Error:' . mysqli_error($link) . PHP_EOL; 36 } 37} 38 39function createSubmission($link) 40{ 41 $sql = <<<EOT 42 CREATE TABLE IF NOT EXISTS submission ( 43 id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, 44 thread_id INTEGER, 45 name VARCHAR(64) NOT NULL, 46 comment VARCHAR(1000), 47 pass TEXT, 48 fname TEXT, 49 extension TEXT, 50 filepass TEXT, 51 created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 52 ) DEFAULT CHARACTER SET=utf8mb4; 53 EOT; 54 55 $result = mysqli_query($link, $sql); 56 57 if ($result) { 58 echo 'テーブルを作成しました' . PHP_EOL; 59 } else { 60 echo 'テーブルの削除に失敗しました' . PHP_EOL; 61 echo 'Error:' . mysqli_error($link) . PHP_EOL; 62 } 63} 64 65function createUserData($link) 66{ 67 $sql = <<<EOT 68 CREATE TABLE IF NOT EXISTS userData ( 69 id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, 70 email VARCHAR(255), 71 password VARCHAR(255), 72 created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 73 ) DEFAULT CHARACTER SET=utf8mb4; 74 EOT; 75 76 $result = mysqli_query($link, $sql); 77 if ($result) { 78 echo 'テーブルを作成しました' . PHP_EOL; 79 } else { 80 echo 'テーブルの作成に失敗しました' . PHP_EOL; 81 echo 'Error:' . mysqli_error($link) . PHP_EOL; 82 } 83} 84 85$table1 = 'threads'; 86$table2 = 'submission'; 87$table3 = 'userData'; 88 89$link = dbConnect(); 90dropTable($link, $table1); 91dropTable($link, $table2); 92dropTable($link, $table3); 93createThreads($link); 94createSubmission($link); 95createUserData($link); 96
ターミナルでの結果
テーブルを削除しました テーブルを削除しました テーブルを削除しました テーブルを作成しました テーブルを作成しました テーブルの作成に失敗しました Error:Table 'book_log.userdata' doesn't exist
補足情報(FW/ツールのバージョンなど)
php:7.4 Macbook2020 Intel i5
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/09 13:09