我在下面尝试了在phpmyadmin中创建用户帐户的代码:
<?php
if(isset($_GET['page'])){
$connection = mysqli_connect('localhost', 'root');
if(!$connection){
echo 'MySQL Server Connection Issue';
}
else{
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "CREATE USER \'".$username."\'@\'%\' IDENTIFIED VIA mysql_native_password USING \'***\'GRANT ALL PRIVILEGES ON *.* TO \'".$username."\'@\'%\' REQUIRE NONE WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0GRANT ALL PRIVILEGES ON `".$username."\\_%`.* TO \'".$username."\'@\'%\'";
$mysqli_query = mysqli_query($connection, $sql);
if($mysqli_query){
echo 'done';
}
else{
echo 'faild';
}
}
}
else{
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form action="?page=create_user" method="POST">
<input type="text" name="username" required>
<input type="password" name="password" required>
<input type="submit" value="Create User">
</form>
</body>
</html>
<?php
}
?>
它只是回应'失败'。为什么?说明:当访问者访问网页时,他会获得一个带有两个字段(用户名和密码)和一个提交按钮的html表单。如果访问者填写表单并提交,则代码必须使用在表单中输入的用户名和密码创建phpmyadmin用户帐户。我添加了一个代码,如果代码在创建MySQL用户时有错误,它将回显'faild'。当我尝试提交表单时,它现在显示'faild'字样。这意味着你在代码中有一些错误。但我无法弄明白。请帮我这个....
你使用反斜杠不是每一个引用。试试这个查询:
$sql = "CREATE USER '" .$username. "' @ '%' IDENTIFIED VIA mysql_native_password USING '***'GRANT ALL PRIVILEGES ON *.* TO '".$username." '@' % ' REQUIRE NONE WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0GRANT ALL PRIVILEGES ON `".$username."' _%`.* TO '".$username."'@'%'";