看板 PHP 關於我們 聯絡資訊
不知道這個問題可不可以在這裡發問 其實是要用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
yuleen123 :一樣執行 mysql_query, 只不過回傳值沒有東西而已 09/22 22:40
skywillnosky:可是我看使用者名單那邊沒有多出我新增的那個帳號耶 09/23 09:24
※ 編輯: skywillnosky 來自: 203.64.183.230 (09/23 09:45)
IBIZA :mysql_query只能執行單一sql指令,你試試看寫成stored 09/23 09:58
IBIZA :procedure或是用mysqli_multi_query 09/23 09:58
IBIZA :不過要小心 musqli_multi_query 是射後不理的 09/23 10:04
skywillnosky:ㄜ...射後不理是啥意思= ="? 09/23 10:11
IBIZA :就是遇到mysqli_multi_query, php不會等他執行完, 會 09/23 10:13
IBIZA :繼續往下走, 譬如你執行一個要跑很久的指令 09/23 10:14
IBIZA :在php裡頭用mysqli_multi_query, 會馬上就執行完, 但 09/23 10:14
IBIZA :其實mysql那邊還沒跑出結果 09/23 10:14
skywillnosky:啊 抱歉 我忘了說我適用PHP4的 mysqli好像不能用? 09/23 10:19
IBIZA :不然寫成兩行mysql_query應該也行吧 09/23 10:20
skywillnosky:其實我一直有個疑問 我這個不算是SQL單一指令嗎? 09/23 10:22
skywillnosky:對不起我有時腦筋轉不過來 還請大大見諒= = 09/23 10:23
IBIZA :Create User跟Grant是兩個指令 09/23 10:25
skywillnosky:原來如此,那使用mysql_query時其實可以不用變數吧@@? 09/23 10:28
skywillnosky:直接 mysql_query = ($mysql,$link);就好了? 09/23 10:29
skywillnosky:欸 可以了耶 謝謝你嚕 09/23 10:31