用变量名创建一个SQL表

时间:2018-08-16 05:32:09

标签: php mysqli

我的困境是我过去曾经能够成功地创建一个带有变量名的SQL表,尽管由于某种原因,现在使用几乎完全相同的代码遇到了麻烦。对于上下文,当我在SQL语句中删除变量时,代码将起作用。下面是我的代码,该代码可以正常运行,并使用变量名创建表:

function RandomString($length) {
$keys = array_merge(range(0,9), range('a', 'z'), range('A', 'Z'));

$key = "";
for($i=0; $i < $length; $i++) {
    $key .= $keys[mt_rand(0, count($keys) - 1)];
}
return $key;
}

$table = "acct_".RandomString(10); 

$query1 = "CREATE TABLE $table (ID int AUTO_INCREMENT PRIMARY KEY, 
account_id text, uemail text, uaccess text, owner text, dob text, 
billingaddress text, accountstatus text, idverification text, notes1 text, 
dtype1 text, domain1 text, register1 text, expiration1 text, dstatus text, 
reasonrejected text, prodtype text, prodname text, prodstatus text, 
prodlimit text, prodapprby text, supportdate text, supportsubject text, 
supportgroup text, logindate1 text, loginreason text, loginby text, 
requesttype text, atoreason text, resolvedato text, cardname text, cardbrand 
text, cardnum text, cardexpiry text, chargemethod text, invoicenum text, 
invoiceamount text, duedate text, paydate text, invoicestatus text, 
loginuser text, loginaction text, loginip text, loginlocation text, 
logindate text, logintime text, supportpin text)";

mysqli_query($database, $query1);

后面是我的代码(对于单独的应用程序),在使用变量名创建表时无法正常运行。请注意,当我删除变量并使表名恒定时,代码将成功运行:

function RandomString($length) {
$keys = array_merge(range(0,9));

$key = "";
for($i=0; $i < $length; $i++) {
    $key .= $keys[mt_rand(0, count($keys) - 1)];
}
return $key;
}

$ticketnumber = RandomString(6);

$AddTicket = "CREATE TABLE $ticketnumber (ID int AUTO_INCREMENT PRIMARY KEY, 
TicketNumber text, Queue text, Assignee text, User_Name text, TStatus text, 
CCs text, Tags text, CSAT_Score int, CSAT_Comment1 text, CSAT_Comment2 text, 
TSubject text, User_Email text, Message text, Internal_Note text, Events 
text, Requested text)";

mysqli_query($database, $AddTicket);

0 个答案:

没有答案