[英]SQL database table creation with variable
我正在一個項目上,我必須使用sql。 變量$file_name
需要是表名,但是當我嘗試這樣做時:
$sqlTableCreate = "CREATE TABLE ". $file_name . "(
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
該表未創建。 我通過使用此檢查:
if ($sqlConnection->query($sqlTableCreate) === TRUE) {
echo 'Created Sucessfully';
} else {
echo 'Table does not create.';
}
嘗試使用此方法時,顯示'Table does not create'
。 幫助將不勝感激。 提前致謝!
您的文件名包含擴展名,但是我懷疑您只想使用不帶擴展名的名稱作為表名。 您可以使用basename
函數刪除擴展名。
$sqlTableCreate = "CREATE TABLE ". basename($file_name, ".csv") . "(
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
如果可以有其他擴展名,並且您想更一般地刪除它們,請參見
我看不到您發布的查詢有任何問題,但幾件事情可能是錯誤的
確保不存在具有相同名稱的表。 您可以使用IF NOT EXISTS
標記來確定
CREATE TABLE IF NOT EXISTS". $file_name . "(
$file_name
不為空。 否則,您在CREATE TABLE
語句中傳遞了一個空標識符。 這不會成功。 根據您的評論:您有$file_name = 'currentScan.csv';
這就是這里的問題。 您正在嘗試創建一個名為currentScan.csv
的表,您的數據庫引擎認為currentscan
是該數據庫的名稱,而.csv
是該表的名稱,顯然該表不會退出,因此出現錯誤。
首先檢查您的數據庫連接並使用以下給定的條件更改查詢:
$sqlTableCreate = "CREATE TABLE ". $file_name . " (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
)";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.