当我尝试创建用户表时,我收到以下错误消息:
创建表时出错:未选择数据库
我已经尝试了SELECT
,USE
和创建新连接,但我似乎无法连接到我创建的secure_login数据库。也许我格式化错误,我不确定。我知道我没有包括选择数据库的尝试,这是因为我所做的一切似乎都不起作用。
这是代码:
<?php
$servername = "localhost";
$username = "root";
$password = "root";
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected to server successfully" . "</br>";
// CREATE SECURE LOGIN
$sql = "CREATE DATABASE IF NOT EXISTS secure_login";
if ($conn->query($sql) === TRUE) {
echo "secure_login functional" . "</br>";
//CREATE USERS TABLE;
$sql = "CREATE TABLE IF NOT EXISTS users (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(30) NOT NULL,
email VARCHAR(50) NOT NULL,
password CHAR(128) NOT NULL
)";
//MAKE ADMIN USER
$sql = "INSERT INTO users (id, username, email, password)
VALUES ('1', 'admin', 'test@test.com', 'password')";
if ($conn->query($sql) === TRUE) {
echo "Table users functional" . "</br>";
}
else {
echo "Error creating table: " . $conn->error . "</br>";
}
}
else {
echo "secure_login not functional: " . $conn->error . "</br>";
}
?>
$sql = "CREATE DATABASE IF NOT EXISTS secure_login";
if ($conn->query($sql) === TRUE) {
// Start Using it at this point :)
您已经创建了新数据库,但尚未告诉 mysqli 将其用于进一步的查询,因此您的 SELECT 查询没有可供选择的数据库。
你可以简单地做
$conn->select_db("secure_login");
这是一个工作示例..我刚刚在创建数据库后与新创建的数据库建立了新连接..。可能还有其他替代方法。但这对我有用.
<?php
$servername = "localhost";
$username = "root";
$password = "root";
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected to server successfully" . "</br>";
// CREATE SECURE LOGIN
$sql = "CREATE DATABASE IF NOT EXISTS secure_login";
if ($conn->query($sql) === TRUE) {
echo "secure_login functional" . "</br>";
$dbname= "secure_login";
$newConnection = new mysqli($servername, $username, $password,$dbname);
//CREATE USERS TABLE;
$sql = "CREATE TABLE IF NOT EXISTS users (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(30) NOT NULL,
email VARCHAR(50) NOT NULL,
password CHAR(128) NOT NULL
)";
if ( $newConnection->query($sql) === TRUE) {
echo "Table users functional" . "</br>";
}
else {
echo "Error creating table: " . $newConnection->error . "</br>";
}
//MAKE ADMIN USER
$sql = "INSERT INTO users (id, username, email, password)
VALUES ('1', 'admin', 'test@test.com', 'password')";
if ( $newConnection->query($sql) === TRUE) {
echo "inserted successsfully" . "</br>";
}
else {
echo "Error Inserting: " . $newConnection->error . "</br>";
}
}
else {
echo "secure_login not functional: " . $newConnection->error . "</br>";
}
?>
输出
已成功连接到服务器
secure_login功能
表用户功能
插入成功
我相信
您只需要在创建表后添加一个选择语句。
您可以在//创建用户表之前调用:
mysqli_select_db($conn,"secure_login");