gpt4 book ai didi

php - PHP 代码中的 SQL 语法错误,即使命令在命令行中运行

转载 作者:行者123 更新时间:2023-11-29 21:50:20 24 4
gpt4 key购买 nike

我正在尝试在 XAMPP 中创建一些 SQL 命令。我的查询返回以下错误:

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'CREATE TABLE IF NOT EXISTS kayttajat ( id INT(10) NOT NULL AUTO_INCREMENT, tunn' at line 2

我找不到语法错误。 当我通过在命令行中复制粘贴来运行完全相同的命令时,它可以工作。那么我需要在 PHP 代码中使用一些不同的语法吗?此外,如果我删除第一个命令,错误消息将移动到 [...] 正确的语法,以在“CREATE TABLE IF NOT EXISTS rivit [...]”附近使用。如果我删除第二个命令,则错误来自第三个命令,依此类推。我真的不明白错误在哪里。

$query='
CREATE DATABASE IF NOT EXISTS asdgfhj;
CREATE TABLE IF NOT EXISTS kayttajat
(
id INT(10) NOT NULL AUTO_INCREMENT,
tunnus1 varchar(32) NOT NULL,
tunnus2 varchar(32) NOT NULL,
nimi varchar(32),
nimi2 varchar(32),
oikeus INT(10) NOT NULL DEFAULT 1,
PRIMARY KEY (id)
);
CREATE TABLE IF NOT EXISTS rivit
(
id INT(10) NOT NULL AUTO_INCREMENT,
sivu INT(10) NOT NULL,
kayttaja INT(10) NOT NULL,
sana varchar(500),
kommentti varchar(1000),
aika TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
muutos TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY(id)
);
CREATE TABLE IF NOT EXISTS sivut
(
id INT(10) NOT NULL AUTO_INCREMENT,
nimi varchar(32) NOT NULL,
ohje varchar(2000) NOT NULL,
salaisuus INT(10) NOT NULL DEFAULT 1,
PRIMARY KEY(id)
);
';

$mysqli->query($query) or die($mysqli->error);

最佳答案

query()方法旨在执行单个查询而不是多个查询。

您正在寻找的是multi_query()执行以分号分隔的多个查询。

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if ($mysqli->multi_query($query)) {
...
}

关于php - PHP 代码中的 SQL 语法错误,即使命令在命令行中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33708540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com