【发布时间】:2019-06-25 04:43:00
【问题描述】:
我可以连接但不能创建数据库。 Connected to Database
<body>
<?php
//Database Connection Variables
$servername = "localhost";
$username = "******";
$password = "********";
$conn = new mysqli($servername, $username, $password);
//The Connection and test
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
//If the form is submitted create the database
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$dbname = $_POST['dbname'];
$user = $_POST['user'];
$password = $_POST['password'];
$sql = "CREATE DATABASE $dbname";
$sql = "CREATE USER $user";
$sql = "GRANT ALL PRIVILEGES ON $dbname.* To '$user' IDENTIFIED BY '$password'";
if ($conn->query($sql) === FALSE) {
echo "Error creating database: " . $conn->error;
}
}
?>
<div class="container">
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<div class="row">
<div class="col-25">
<label for="dbname">New DB Name: </label>
</div>
<div class="col-75">
<input type="text" name="dbname" placeholder="Enter New Database Name">
</div>
<div class="col-25">
<label for="user">New User Name: </label>
</div>
<div class="col-75">
<input type="text" name="user" placeholder="Enter New User Name">
</div>
<div class="col-25">
<label for="password">New Password: </label>
</div>
<div class="col-75">
<input type="text" name="password" placeholder="Enter New Password">
<input type="submit" name="submit" value="GO" />
</div>
</div>
</div>
</form>
问题(我认为)是我只有 cpanel 而没有 WHM,所以我没有 root mySQL 密码。我想通过一个表单来完成这一切,创建数据库、用户、密码、表格、上传数据等。
目标是让没有技术技能的最终用户能够通过表单在营销数据库中创建、查看和添加数据。
【问题讨论】:
-
您只执行
GRANT,因为所有3条语句都使用$sql,并且只执行最后一条。 -
使用多查询
mysqli::multi_query -
根据问题,我认为不会,它会在执行查询时检查您的数据库用户,并且它会得到您的许可,如果您对这些查询有许可,您就可以做到。如果您的用户有权,那么它可能