我正在尝试创建一个表,如果它在我的数据库中不存在.为此,我正在运行此测试,该测试按预期工作:
$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服务器版本对应的手册,以便在”乘客’附近使用正确的语法SMALLINT NOT NULL,’预订’CHAR(6),’seat’VARCHAR(3))’在第2行
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时我仍然有同样的错误.
任何人都可以看到我错在哪里?
CREATE TABLE ABC(乘客SMALLINT NOT NULL PRIMARY KEY,预订CHAR(6),座位VARCHAR(3))
不使用ABC它是:
CREATE TABLE(乘客SMALLINT NOT NULL PRIMARY KEY,预订CHAR(6),座位VARCHAR(3))
解决方法:
你使用单引号arround列名是不允许的.单个qoutes表示里面的值是一个litaral:
更改:
$val = MysqL_query("SELECT 1 from '$FLIGHTID'");
至:
$val = MysqL_query("SELECT 1 from $FLIGHTID");
使用MysqLi_ *或PDO代替不推荐使用的MysqL_ * API.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。