Php 使用准备好的语句创建MySQL用户?
我正在尝试创建一个用户,一个MySQL用户,为ex准备语句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(); 但当我这样做时,会收到一条错误消息 致命错误
$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;
}
请注意,我们忽略了所有的卫生和安全问题。
不要将此代码放在前端(在野外),只放在安全的后台(管理员)