php - Mysql 查询问题。授予用途*。 * 给用户

标签 php mysql

<?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/

相关文章:

mysql - 如何从最近的记录中选择值?

Mysql 查询所有年份的生日

mysql - 数据库对话获取已发送消息的列表

mysql - codeigniter 中的链接表

php - REGEX 如何重复提取模式?

javascript - 尝试放置两个javascript

php - SF3 文件夹结构中的 DDD

php - 在 WooCommerce 中,在所有订单的运输详细信息下添加新的输入字段,仅向管理员显示

php - 使用 mysql php 运行基于另一个查询的查询

java - hibernate如何在自定义插入/更新语句期间定义映射?