作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在这里,我试图用输入的每个电子邮件 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/
在这里,我试图用输入的每个电子邮件 ID 的名称创建单独的数据库。我希望数据库名称是用户输入的电子邮件 ID。 错误: check the manual that corresponds to Mar
我是一名优秀的程序员,十分优秀!