簡體   English   中英

創建表的PHP MySQL錯誤

[英]php mysql error for creating a table

我在使用mysql數據庫的php中創建表時遇到錯誤,我嘗試直接在mysql查詢引擎上進行測試,效果很好。 而在PHP代碼中,它給出了以下錯誤

您的SQL語法有誤; 請查看與您的MySQL服務器版本相對應的手冊,以在附近使用正確的語法。

下面是我正在編寫的代碼

$query14 = mysql_query("create table $tablename (
                                           project_id INT,
                                           project_client_id INT, 
                                           project_partner_id INT, 
                                           project_manager_id INT,
                                           project_employees INT, 
                                           project_name VARCHAR(500), 
                                           project_status TEXT,
                                           project_summary LONGTEXT, 
                                           project_order INT, 
                                           project_start_date DATETIME,
                                           project_end_date DATETIME
                                         ) ENGINE = INNODB;");

下面是圖像和表結構,這是我通過phpmyadmin接口創建的示例表。 下面是完整的錯誤

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''8' (project_id INT, project_client_id INT, project_partner_id INT, project_mana' at line 1`

在此處輸入圖片說明

您的查詢沒有任何問題。 但是$tablename的值是什么? 這里有兩種可能的錯誤:

  1. 變量$tablename為空。
  2. $tablename是一個關鍵字。

請檢查以上兩個,否則可以。

更新:

根據您更新的問題,請嘗試使用以下代碼。 我認為它將為您提供幫助。

$query14 = mysql_query("create table `$tablename` (
                                           `project_id` INT,
                                           `project_client_id` INT, 
                                           `project_partner_id` INT, 
                                           `project_manager_id` INT,
                                           `project_employees` INT, 
                                           `project_name` VARCHAR(500), 
                                           `project_status` TEXT,
                                           `project_summary` LONGTEXT, 
                                           `project_order` INT, 
                                           `project_start_date` DATETIME,
                                           `project_end_date` DATETIME
                                         ) ENGINE = INNODB;");

您的查詢語法很好,看起來$ tablename為空。

我認為問題是$ tablename被替換了什么。

擁有完整的代碼示例將在調試錯誤時更加有用。

mysql create語句在mysql 5.1.58上可以正常工作。

正如您在上面的注釋中所說的那樣,在回顯$tablename您得到的值是8那么就不可能創建表。

您必須像tbl_8這樣重命名$tablename的值。

記住名稱tbl-8也會出錯,

問題是,$ tablename當前為8,對於SQL表,表名必須以字母開頭。 當前表名無效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM