<?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());
?>
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GRANT USAGE ON *.* TO '78eb50407b017587'@'%' IDENTIFIED BY '4fa70f7cc25ccf9dc9dd' at line 1.
谁知道这是怎么回事
更新 我删除了identified by,但它什么也没做。还有其他建议吗?
最佳答案
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 查询问题。授予用途*。 * 给用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11112457/