使用表名cakephp中的参数或变量的动态表

时间:2016-02-26 13:09:08

标签: php mysql cakephp

我正在使用mysql创建一个动态表,查询表名称应该是唯一的,这就是我为表名添加了用户ID的原因。 在控制器中:

$last_id = $this->User->getLastInsertID();

//$table_name = 'hello_'.$last_id.'_tutors';
// debug($table_name);

$this->User->query("CREATE TABLE IF NOT EXISTS `post_`.$last_id.`_tutors` (
      `id` int(8) NOT NULL AUTO_INCREMENT,
      `user_id` int(8) NOT NULL,
      `tutor_name` varchar(50) NOT NULL,
      `tutor_email` varchar(50) NOT NULL,
      `tutor_number` varchar(50) NOT NULL,
      `tutor_gender` varchar(50) NOT NULL,
      `tutor_address` varchar(100) NOT NULL,
      `city_id` int(11) NOT NULL,
      `area_id` int(11) NOT NULL,
      `matric` varchar(200) NOT NULL,
      `inter` varchar(200) NOT NULL,
      `graduation` varchar(200) NOT NULL,
      `masters` varchar(200) NOT NULL,
      `diploma` varchar(200) NOT NULL,
      `other_education` varchar(200) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=67 ;
 ");

它给出了语法错误,如:

  

语法错误或访问冲突:1064 SQL中有错误   句法;查看与MySQL服务器版本对应的手册   要在'.75附近使用正确的语法。_tutorstutor_name   varchar(50)NOT NULL,第1行的tutor_email var'

如果有人可以提供帮助。提前谢谢。

1 个答案:

答案 0 :(得分:1)

尝试使用

$this->User->query("CREATE TABLE IF NOT EXISTS `post_".$last_id."_tutors` (