入力情報をテーブル名にして、テーブルを新規作成したい
PHPでログイン機能(新規登録+ログイン)を用いたサイトを作成しました。
新規登録の際には、①ユーザー名、②メールアドレス、③パスワード を入力してもらい
各情報をデータベースのユーザマスタに保存しているのですが、
これと同時に、「①ユーザー名」をテーブル名にしたテーブルを新たにをつくりたいです。
試したコード
register.php
1<?php 2if(count($err) ===0){ 3 $createdTable = UserLogic::createTable($_POST); 4 if(!$createdTable){ 5 $err[] = 'テーブル作成に失敗しました'; 6 } 7}
UserLogic.php
1<?php 2class UserLogic 3{ 4public static function createTable($userData) 5{ 6 $result = false; 7 $sql = 'CREATE TABLE ? (id INT AUTO_INCREMENT, score INT, PRIMARY KEY(id)) DEFAULT CHARSET=utf8mb4;'; 8 9$arr = []; 10$arr[] = $userData['username']; 11 12try{ 13$stmt = connect()->prepare($sql); 14$result = $stmt->execute($arr); 15return $result; 16}catch(\Exception $e){ 17return $result; 18} 19} 20}
質問
これらのコードを実行すると「テーブル作成に失敗しました」のエラーがでてしまいます。
'CREATE TABLE ? ~'ように、配列をテーブル名にすることはできないのでしょうか?
新規登録と同時にテーブルを自動生成する方法がありましたら、教えていただきたいです。
回答2件
あなたの回答
tips
プレビュー