gpt4 book ai didi

php - 检查与 MariaDB 服务器版本对应的手册,了解在第 1 行 '.tcet@gmail.com' 附近使用的正确语法”

转载 作者:行者123 更新时间:2023-12-04 14:19:16 26 4
gpt4 key购买 nike

在这里,我试图用输入的每个电子邮件 ID 的名称创建单独的数据库。我希望数据库名称是用户输入的电子邮件 ID。

错误:

check the manual that corresponds to MariaDB server version for the right syntax to use near '.tcet@gmail.com' at line 1"

<?php

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
die($conn->connect_error);
}

$email = $conn->query("SELECT username FROM `register` ORDER BY ID DESC
LIMIT 1");
$result = $email->fetch_assoc();
$final = $result['username'];

$sql = "CREATE DATABASE $final";

if ($conn->query($sql) === TRUE) {
echo "Database created successfully";
} else {
echo $conn->error;
}

$conn->close();
?>

在这里,在上面的代码中,我正在获取用户输入的电子邮件 ID,并尝试使用已获取的相同电子邮件 ID 的名称创建一个数据库。但我收到上述错误。

最佳答案

带有 .@ 的数据库名称在 MariaDB 中是合法的(但仍然应该避免,因为它们很难处理)。在您的第一个 SQL 查询中,您已经使用了 ` 字符(包含表名)但似乎没有理解它的用途。长话短说:

CREATE DATABASE a.b@c

不会工作,但是

CREATE DATABASE `a.b@c`

会。

参见 https://mariadb.com/kb/en/library/identifier-names/https://dev.mysql.com/doc/refman/8.0/en/glossary.html#glos_backticks

关于php - 检查与 MariaDB 服务器版本对应的手册,了解在第 1 行 '.tcet@gmail.com' 附近使用的正确语法”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56767136/

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