質問: お世話になります。 ### 前提・実現したいこと 表題の通り、ユーザーが入力したメールアドレスの名前で、 データベースのテーブルを作ろうと思っています。 ### 発生している問題・エラーメッセージ 下記コードを実行しましたが、テーブルが作られませんでした。 たとえば、下記コードにおいて、$emailの中身がxxx@yahoo.co.jpである場合、 WorkNameというフィールドを持つxxx@yahoo.co.jp_Worksというテーブルが 作られる、と考えましたが、プログラムが落ちることは無かったものの、 テーブルが作られません。 ### 該当のソースコード ``` $sql= 'CREATE TABLE :mail_Works(WorkName VARCHAR(255))'; $stt=$link->prepare($sql,array(PDO::ATTR_CURSOR=>PDO::CURSOR_SCROLL)); $stt->execute( array( ':mail'=>$email ) ); ``` 本当は、 ``` $sql= 'CREATE TABLE '.$email.'_Works(WorkName VARCHAR(255))'; ``` としたかったのですが、セキュリティ上芳しくないので止めました。 どうすれば、メールアドレスを冠したテーブル名のテーブルを作ることができますか。
回答: こういう`:mail_Works(WorkName`名前の変数だと思われているところに、executeで`:mail`をあてているので動かないように考えました こういうのはどうでしょうか ``` $stt->execute( array( ':mail'=>$email."_Work" ) ); ``` もちろん`'CREATE TABLE :mail (WorkName VARCHAR(255))'`こうする前提で。