[請益] 用PHP創造資料庫的帳戶

看板PHP作者 (Alfred)時間14年前 (2009/09/22 21:43), 編輯推噓0(0018)
留言18則, 3人參與, 最新討論串1/1
不知道這個問題可不可以在這裡發問 其實是要用PHP做一個的介面 它可以用來創造資料庫的帳號(以phpMyAdmin來說) SQL的語法是: CREATE USER '$username'@'%' IDENTIFIED BY '$password'; GRANT SELECT , INSERT , UPDATE , DELETE , DROP , RELOAD , SHUTDOWN , PROCESS , FILE , REFERENCES , INDEX , ALTER , SHOW DATABASES , SUPER , CREATE TEMPORARY TABLES , LOCK TABLES , REPLICATION SLAVE , REPLICATION CLIENT, CREATE VIEW , SHOW VIEW , CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EXECUTE ON * . * TO '$username'@'%' IDENTIFIED BY '$password' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 已知道直接放到SQL語法執行攔 可以成功創出擁有該權限之帳號 $username 為使用者名稱 $password 為密碼(用資料庫既定的新增使用者介面創造的話,會是一串星號******.....) 可是PHP就不知道要用什麼函式去執行該SQL的語法 以下是我未完成的程式: <?php $link = mysql_connect("localhost",123,"456"); mysql_query("SET NAMES 'utf8'"); if( !$link )echo "資料庫連結失敗<br>"; else echo "連結成功了<p>"; mysql_query("SET NAMES 'utf8'"); $username = $_POST["username"];//在html的型態為TEXT $password = $_POST["password"];//在html的型態為password $create_user"(SQL語法) "; $mysql = mysql_query($create_user,$link);//不確定是不是可以這樣用 //當時翻書找不到執行這種SQL的函式= =" if($data == 1) echo"success!"; else echo"fail!"; mysql_free_result($mysql); mysql_close($link); ?> 願PTT 的PHP神解惑 感恩<(_ _)> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.125.82.99

09/22 22:40, , 1F
一樣執行 mysql_query, 只不過回傳值沒有東西而已
09/22 22:40, 1F

09/23 09:24, , 2F
可是我看使用者名單那邊沒有多出我新增的那個帳號耶
09/23 09:24, 2F
※ 編輯: skywillnosky 來自: 203.64.183.230 (09/23 09:45)

09/23 09:58, , 3F
mysql_query只能執行單一sql指令,你試試看寫成stored
09/23 09:58, 3F

09/23 09:58, , 4F
procedure或是用mysqli_multi_query
09/23 09:58, 4F

09/23 10:04, , 5F
不過要小心 musqli_multi_query 是射後不理的
09/23 10:04, 5F

09/23 10:11, , 6F
ㄜ...射後不理是啥意思= ="?
09/23 10:11, 6F

09/23 10:13, , 7F
就是遇到mysqli_multi_query, php不會等他執行完, 會
09/23 10:13, 7F

09/23 10:14, , 8F
繼續往下走, 譬如你執行一個要跑很久的指令
09/23 10:14, 8F

09/23 10:14, , 9F
在php裡頭用mysqli_multi_query, 會馬上就執行完, 但
09/23 10:14, 9F

09/23 10:14, , 10F
其實mysql那邊還沒跑出結果
09/23 10:14, 10F

09/23 10:19, , 11F
啊 抱歉 我忘了說我適用PHP4的 mysqli好像不能用?
09/23 10:19, 11F

09/23 10:20, , 12F
不然寫成兩行mysql_query應該也行吧
09/23 10:20, 12F

09/23 10:22, , 13F
其實我一直有個疑問 我這個不算是SQL單一指令嗎?
09/23 10:22, 13F

09/23 10:23, , 14F
對不起我有時腦筋轉不過來 還請大大見諒= =
09/23 10:23, 14F

09/23 10:25, , 15F
Create User跟Grant是兩個指令
09/23 10:25, 15F

09/23 10:28, , 16F
原來如此,那使用mysql_query時其實可以不用變數吧@@?
09/23 10:28, 16F

09/23 10:29, , 17F
直接 mysql_query = ($mysql,$link);就好了?
09/23 10:29, 17F

09/23 10:31, , 18F
欸 可以了耶 謝謝你嚕
09/23 10:31, 18F
文章代碼(AID): #1AkDIKJa (PHP)