php sql查询不适用于php
Posted
技术标签:
【中文标题】php sql查询不适用于php【英文标题】:php sql query that does not work on php 【发布时间】:2015-05-27 05:18:09 【问题描述】:大家好,我正在尝试通过 php 运行 sql 查询,但我遇到了无法修复的错误。
$sql = 'DROP TABLE IF EXISTS Stats;
CREATE TABLE Stats (
id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
name varchar(255) ,
Type int ,
below int ,
meeting int ,
exceeding int
); ';
if (mysqli_query($con, $sql))
echo "New record created successfully";
else
echo "Error: " . $sql . "<br>" . mysqli_error($con);
Ant 它给了我这个错误
您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 'CREATE TABLE Stats (id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,在第 2 行命名为 varc'
但是,如果我删除 DROP TABLE IF EXISTS Stats;
行它可以工作
$sql = 'CREATE TABLE Stats (
id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
name varchar(255) ,
Type int ,
below int ,
meeting int ,
exceeding int
); ';
我明白了
错误:CREATE TABLE Stats (id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,名称 varchar(255) ,类型 int ,低于 int ,会议 int , 超过 int );表“统计信息”已存在
因为我收到了Table 'stats' already exists
的消息
任何有关如何解决此问题的理由或想法将不胜感激。
【问题讨论】:
【参考方案1】:mysqli_query()
不支持多语句。所以你必须调用它2次。首先删除表,然后重新创建它。
$sql = 'DROP TABLE IF EXISTS Stats;';
if (mysqli_query($con, $sql))
echo "Table successfully";
else
echo "Error: " . $sql . "<br>" . mysqli_error($con);
$sql = ' CREATE TABLE Stats (
id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
name varchar(255) ,
Type int ,
below int ,
meeting int ,
exceeding int
); ';
if (mysqli_query($con, $sql))
echo "New record created successfully";
else
echo "Error: " . $sql . "<br>" . mysqli_error($con);
【讨论】:
如果mysqli_query不支持multiple statement,那么他可以用mysqli_multi_query代替mysqli_query。【参考方案2】:你可以试试这个: 来自
$sql = 'DROP TABLE IF EXISTS Stats;
CREATE TABLE Stats (
id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
name varchar(255) ,
Type int ,
below int ,
meeting int ,
exceeding int
); ';
到
$sql = 'CREATE TABLE IF NOT EXISTS Stats (
id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
name varchar(255) ,
Type int ,
below int ,
meeting int ,
exceeding int
); ';
【讨论】:
【参考方案3】:您可以使用mysqli_multi_query()
执行一个或多个查询。
另请阅读mysqli_multi_query以执行多个语句
喜欢:-
$query = "DROP TABLE IF EXISTS Stats;";
$query .= "CREATE TABLE Stats (
id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
name varchar(255) ,
Type int ,
below int ,
meeting int ,
exceeding int
);";
/* execute multi query */
if ($mysqli->multi_query($con,$query))
//your code here
对于这个错误:-
表“统计”已经存在
你使用
CREATE TABLE IF NOT EXISTS `Stats`
在您的创建语句中
【讨论】:
以上是关于php sql查询不适用于php的主要内容,如果未能解决你的问题,请参考以下文章