下面的PHP代码对我不起作用

时间:2015-12-19 05:55:45

标签: php mysql

我正在尝试为我的mysql数据库创建一个新用户并使用它登录以创建一个新数据库。我尝试了以下代码。但它会导致一些错误。

<?php

$mysqli=new mysqli("localhost","username","password@123") or die(".........");

$mysqli->query("CREATE USER 'new_username'@'localhost' IDENTIFIED BY '123456';");
$mysqli->query("GRANT ALL ON db1.* TO 'new_username'@'localhost'");

$mysqli->close();

$mysqli=new mysqli("localhost","new_username","123456") or die(".........");

if($mysqli->query("Create database if not exists New_DB_Name")){

   "Failed creating new database: ".$mysqli->connect_errno();
    die();

}

$mysqli->select_db("New_DB_Name");
$mysqli->close(); ?>

这是错误

    Warning: mysqli::mysqli(): (28000/1045): Access denied for user 'new_username'@'localhost' (using password: YES) in /home/public_html/sign-up/conn.php on line 10

Warning: mysqli::query(): Couldn't fetch mysqli in /home/public_html/sign-up/conn.php on line 12

Warning: mysqli::select_db(): Couldn't fetch mysqli in /home/public_html/sign-up/conn.php on line 19

Warning: mysqli::close(): Couldn't fetch mysqli in /home/public_html/sign-up/conn.php on line 20

编辑:实际上它没有创建新用户。这就麻烦了。

3 个答案:

答案 0 :(得分:0)

检查您的数据库权限。该错误表明sql用户username没有创建用户权限。

除非您想以自动方式创建许多用户,否则创建用户是一件不寻常的事情。

您可能希望使用管理界面创建一次所需的用户名,然后使用PHP脚本创建模式的所有方面:数据库,表格,索引等。

答案 1 :(得分:0)

尝试将root替换为username。默认的mysql用户名是root

如果用户存在,则必须更改此行:

$mysqli->query("CREATE USER 'new_username'@'localhost' IDENTIFIED BY '123456';");

$mysqli->query("CREATE USER new_username@localhost IDENTIFIED BY '123456';");

因为mysql不支持single quote但支持“``”

答案 2 :(得分:-1)

连接线出现问题:

$mysqli=new mysqli("localhost","username","password@123") or die(".........");

您无法使用localhost进行连接127.0.0.1

更多信息:http://php.net/manual/en/mysqli.quickstart.connections.php