我正在尝试创建一个表,如果它不存在于我的数据库中。为此,我正在运行这个按预期工作的测试:
$conn = mysql_connect("localhost", "twa222", "twa222bg");
mysql_select_db("airline222", $conn) or die ("Database not found " . mysql_error() );
$val = mysql_query("SELECT 1 from '$FLIGHTID'");
但是,当我尝试自己创建表时出现了问题,这给了我以下错误:
查询问题:您的 SQL 语法有误;检查与您的 MySQL 服务器版本对应的手册,了解在第 2 行的“passenger”SMALLINT NOT NULL、“booking”CHAR(6)、“seat”VARCHAR(3))'附近使用的正确语法
这是试图生成表格的代码
if(!$val)
{
$sql = "CREATE TABLE ".$FLIGHTID." (
passenger SMALLINT NOT NULL PRIMARY KEY,
booking CHAR(6), seat VARCHAR(3) )";
$rs = mysql_query($sql) or die ("Problem with query" . mysql_error());
}
mysql_close($conn);
我最初以为是“.$FLIGHTID”。那是导致问题的原因,但是当我将其更改为简单的 ABC 时,我仍然遇到相同的错误。
谁能看出我哪里出错了?
编辑: 使用 ABC 时我的 SQL 输出是:
CREATE TABLE ABC ( passenger SMALLINT NOT NULL PRIMARY KEY, booking CHAR(6), seat VARCHAR(3) )
不使用 ABC 是:
CREATE TABLE ( passenger SMALLINT NOT NULL PRIMARY KEY, booking CHAR(6), seat VARCHAR(3) )
最佳答案
您在列名周围使用单引号是不允许的。单引号表示里面的值是斜体字:
改变:
$val = mysql_query("SELECT 1 from '$FLIGHTID'");
到:
$val = mysql_query("SELECT 1 from $FLIGHTID");
使用 mysqli_*
或 PDO
而不是弃用的 mysql_*
API。
关于php - 无法创建 mySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30612154/