Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用准备好的语句创建MySQL用户?_Php_Mysql_Prepared Statement - Fatal编程技术网

Php 使用准备好的语句创建MySQL用户?

Php 使用准备好的语句创建MySQL用户?,php,mysql,prepared-statement,Php,Mysql,Prepared Statement,我正在尝试创建一个用户,一个MySQL用户,为ex准备语句 $QueryToCreateUser = $conn->prepare("CREATE USER '?'@'localhost' IDENTIFIED BY ? ;"); $QueryToCreateUser->bind_param('ss',$CreateUser,$CreatePassword); $QueryToCreateUser->execute(); 但当我这样做时,会收到一条错误消息 致命错误

我正在尝试创建一个用户,一个MySQL用户,为ex准备语句

$QueryToCreateUser = $conn->prepare("CREATE USER  '?'@'localhost' IDENTIFIED BY ? ;");
  $QueryToCreateUser->bind_param('ss',$CreateUser,$CreatePassword);
  $QueryToCreateUser->execute();
但当我这样做时,会收到一条错误消息

致命错误:未捕获错误:调用布尔值上的成员函数bind_param()。

有没有办法使用准备好的语句并创建MySQL用户?

问题在于:

 $QueryToCreateUser = $conn->prepare("CREATE USER  '?'@'localhost' IDENTIFIED BY ? ;");
 $QueryToCreateUser->bind_param('ss',$CreateUser,$CreatePassword);
准备() 方法可以返回false,您应该对此进行检查


也可以考虑使用诸如$CONN->ErrRoSQL列表之类的东西来检查解析SQL时发生的错误。(我偶尔会回显实际的SQL语句字符串,并将其粘贴到phpMyAdmin中进行测试,但肯定有什么地方失败了。)

似乎是一个安全问题。 您的最佳选择是:

if (!($QueryToCreateUser = $conn->query("CREATE USER  '$CreateUser'@'localhost' IDENTIFIED BY $CreatePassword ;"))) {
    echo "User insertion failed: (" . $conn->errno . ") " . $conn->error;
}
请注意,我们忽略了所有的卫生和安全问题。 不要将此代码放在前端(在野外),只放在安全的后台(管理员)