<?php
$user = substr(md5(rand()),0,16);
$pass = substr(md5(rand()),0,20);
$query = "CREATE USER '{$user}'@'%' IDENTIFIED BY '{$pass}';
GRANT USAGE ON * . * TO '{$user}'@'%' IDENTIFIED BY '{$pass}' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
CREATE DATABASE IF NOT EXISTS `{$user}`;
GRANT ALL PRIVILEGES ON `{$user}` . * TO '{$user}'@'%';";
mysql_connect("***.****.info", "***", "****") or die(mysql_error());
mysql_query($query) or die(mysql_error());
?>
您的 SQL 语法有误;请查看手册 对应于您的MySQL服务器版本,以便使用正确的语法 在"授予 *.* 上的使用量"到 '78EB50407b017587'@'%' 附近,由 "4FA70f7cc25ccf9dc9dd"在第 1 行。
任何人都知道这里发生了什么
我删除了由标识的更新,它什么也没做。还有其他建议吗?
mysql_query() 不支持多个查询。逐个执行查询。
mysql_connect("***.****.info", "***", "****") or die(mysql_error());
$query1 = "CREATE USER '{$user}'@'%' IDENTIFIED BY '{$pass}';";
$query2 = "GRANT USAGE ON * . * TO '{$user}'@'%' IDENTIFIED BY '{$pass}' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;";
$query3 = "CREATE DATABASE IF NOT EXISTS `{$user}`;";
$query4 = "GRANT ALL PRIVILEGES ON `{$user}` . * TO '{$user}'@'%';";
mysql_query($query1) or die(mysql_error());
mysql_query($query2) or die(mysql_error());
mysql_query($query3) or die(mysql_error());
mysql_query($query4) or die(mysql_error());
但是,考虑到您的查询结构,我建议您执行事务查询。您可以在此处阅读有关它的更多信息:
- PHP + MySQL 事务示例
- PHP & mySQL:实现事务的简单代码 - 提交和回滚