我目前有一個需求,按月份(也就是date('Ym'))建立資料庫,我目前的SQL語句:
$sql = "CREATE TABLE IF NOT EXISTS time (file_id int(10) auto_increment primary key,filename varchar(60),filepath varchar(60),filesize int(10),uploadtime date)";
如果把time賦值time=date('Ym')會報錯滴(SQL文法不正確),怎麼寫才正確?
回複討論(解決方案)
MySQL 一般要求表名、欄位名符合變數命名規則。
即 以字母或底線 開始,後跟若干個 字母、數字、底線 組合
對於不符合變數命名規則的名字或雖符合但該名字值 mysql 保留字時,需要用轉義符 ` 將其括起
CREATE TABLE IF NOT EXISTS `201303` (....
就可以了
MySQL 一般要求表名、欄位名符合變數命名規則。
即 以字母或底線 開始,後跟若干個 字母、數字、底線 組合
對於不符合變數命名規則的名字或雖符合但該名字值 mysql 保留字時,需要用轉義符 ` 將其括起
CREATE TABLE IF NOT EXISTS `201303` (....
就可以了
那麼變數怎麼轉義?比如$dbtime=date('Ym'),資料庫名稱是$dbtime,那麼語句怎麼寫?
我猜不出來你想幹什麼
我猜不出來你想幹什麼
按月份建立資料庫,比如現在是2013年3月份,就在某庫中建立一個叫201303的資料表(如果不存在);4月份就建立201304的資料表,以此類推。我現在要知道這個SQL語句到底怎麼寫才正確
$dbtime = date('Ym');
$sql = "CREATE TABLE IF NOT EXISTS `$dbtime` ( .... ";
其實你前面加一個字元不就簡單明了了?
$dbtime = 't' . date('Ym');
$sql = "CREATE TABLE IF NOT EXISTS $dbtime ( .... ";
$dbtime = date('Ym');
$sql = "CREATE TABLE IF NOT EXISTS `$dbtime` ( .... ";
其實你前面加一個字元不就簡單明了了?
$dbtime = 't' . date('Ym');
$sql = "CREATE TABLE IF NOT EXISTS $dbtime ( .... ";
這個方法管用,分給你了,我再想辦法把前面的t去掉