php
1for ($i = 2; $i <= $values['num']; $i++) { 2 $stmt = $this->db->prepare("alter table progs_:groupid add state_"$i" tinyint(1) default 0 after state_"$i-1";"); 3 $stmt->execute([ 4 ':groupid' => $values['groupid'], 5 ]); 6 }
の部分が、
Parse error: syntax error, unexpected '$i' (T_VARIABLE)
というふうにエラーになってしまうのですが、
何が悪いのでしょうか。
そもそもprepare()の中はいじれないということでしょうか?
追記(11/24)
やろうとしてるのは、ユーザーから受け取った'num'の数だけstate_○フィールドのあるテーブルを作ることです。
create tableの時点で任意の数のフィールドを作るのが難しかったので、後からalter addしようとしました。
重大なセキュリティホールができてしまうとはどういうことでしょうか(参考になるサイト等紹介してくれると嬉しいです)。
スクリプトは外部から参照できない場所に置いてあります。
本当にやろうとしてるのは、ユーザーのdo,undoをデータベースで管理することで、ユーザー登録の時にチェックボックスの数を任意に決められるようにしたいです。
こういう場合、どういった構造にすべきでしょうか?
質問内容が変わってしまいますが、アドバイスいただけたら嬉しいです。
回答4件
あなたの回答
tips
プレビュー