2012-06-20 57 views
0
<?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服務器版本使用 接近正確的語法手冊 'GRANT USAGE ON *。* TO '「IDENTIFIED BY '78eb50407b017587' @' %4fa70f7cc25ccf9dc9dd' 在行1Mysql查詢問題。撥款用法*。 *給用戶

任何人知道這裏發生了什麼

更新我刪除確定的和它什麼也沒做。還有其他建議嗎?

回答

2

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()); 

但是,鑑於您的查詢結構,我建議您做一個交易查詢。你可以閱讀更多關於它,在這裏:

+0

完成,並完成。將接受在5秒內,當我可以 – macintosh264

+0

更新更多鏈接到交易查詢 – ariefbayu

+0

感謝這樣一個很好的答案這樣一個愚蠢的問題!我喜歡這個網站,以及所有偉大的成員。我希望我能給像你這樣的人不僅僅是一個贊成並接受。 – macintosh264