我正在尝试创建一个表,如果它在我的数据库中不存在。为此,我正在运行这个按预期工作的测试:
if ($mysqli_connection->connect_error) {
echo "Not connected, error: " . $mysqli_connection->connect_error;
}//<------forgot
但是当我尝试创建表本身时出现了问题,这给了我以下错误:
查询问题:$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'");
这是尝试生成表的代码
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 ''passenger' SMALLINT NOT NULL, 'booking' CHAR(6), 'seat' VARCHAR(3))' at line 2
我原本以为是“。$ FLIGHTID”。这导致了问题,但当我改变它只是ABC时我仍然有同样的错误。
谁能看到我哪里出错了?
修改 使用ABC时我的SQL输出是:
创建表ABC(乘客SMALLINT非空主键,预订CHAR(6),座位VARCHAR(3))
不使用ABC就是:
CREATE TABLE(乘客SMALLINT NOT NULL PRIMARY KEY,预订CHAR(6),座位VARCHAR(3))
答案 0 :(得分:4)
您使用单引号arround列名称是不允许的。单个qoutes表示里面的值是litaral:
变化:
$val = mysql_query("SELECT 1 from '$FLIGHTID'");
为:
$val = mysql_query("SELECT 1 from $FLIGHTID");
使用mysqli_*
或PDO
代替弃用的mysql_*
API。