• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

per PHP neue MySQL-Datenbank und MySQL-Benutzer anlegen

Status
Für weitere Antworten geschlossen.

sudeki05

Neues Mitglied
Ja, ihr seht ja was ich machen will ;)
Per PHP soll eine MySQL-Datenbank erstellt werden und ein Benutzer mit den selben
Namen wie die DB hat. Der Benutzer soll ebenfalls nur Rechte auf dieser einen Datenbank haben.

Ich hatte es nun so probiert:
PHP:
$mysql = "1";

if ($_POST['mysql'] == $mysql)
{
      $connectionid  = mysql_connect ("localhost", "benutzer", "passwort");

	$sql = "CREATE USER '$_POST[nickname]'@ 'localhost' IDENTIFIED BY   '$_POST[pw1]', GRANT USAGE ON * . * TO '$_POST[nickname]'@ 'localhost'  IDENTIFIED BY '$_POST[pw1]' 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 `$_POST[nickname]` , GRANT ALL PRIVILEGES ON `$_POST[nickname]` . * TO '$_POST[nickname]'@ 'localhost'";

	 mysql_query ($sql); 
}	  
?>
Passiert aber nichts. kenn mich mit MySQL net großartig aus, in phpmyadmin kann ich den Code eingeben im querry und es funktioniert, scheitert es an der Übergabe vom $_POST?

edit $_POST wird wohl übergeben, siehe fehler ausgabe von mysql_error()

Code:
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 ''localhost' IDENTIFIED BY 'test', GRANT USAGE ON * . * TO 'test'@ 'localhost' ID' at line 1
 
Werbung:
gott, da können ja nur fehler entstehen...

PHP:
<?php
//wenn schon, dann

$sql = " '".$_POST['variablenname']."' ";
?>

ansonsten stimmt alles.

Nils aka XraYSoLo
 
PHP:
$mysql = "1";

if ($_POST['mysql'] == $mysql)
{
  $connectionid  = mysql_connect ("localhost", "benutzer", "passwort");
  extract($_POST);
  $sql = "CREATE USER '".$_POST['nickname']."'@ 'localhost' IDENTIFIED BY   '".$_POST['pw1']."', GRANT USAGE ON * . * TO '".$_POST['nickname']."'@ 'localhost'  IDENTIFIED BY '".$_POST['pw1']."' 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 `".$_POST['nickname']."` , GRANT ALL PRIVILEGES ON `".$_POST['nickname']."` . * TO '".$_POST['nickname']."'@ 'localhost'";

    mysql_query ($sql);
}   echo mysql_error()
?>

so hab ich's nun geamcht, der Fehler bleibt allerdings noch.

Code:
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 ''localhost' IDENTIFIED BY 'test', GRANT USAGE ON * . * TO 'test'@ 'localhost' ' at line 1
 
Werbung:
du sollst auch hochkommata ( ' ) anstatt apostroph ( ´ ` ) nehmen.

schau' dir mal das ende deiner query an.

Nils aka XraYSoLo
 
PHP:
 $sql = "CREATE USER '".$_POST['nickname']."'@ 'localhost' IDENTIFIED BY   '".$_POST['pw1']."', GRANT USAGE ON * . * TO '".$_POST['nickname']."'@ 'localhost'  IDENTIFIED BY '".$_POST['pw1']."' 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 '".$_POST['nickname']."' , GRANT ALL PRIVILEGES ON '".$_POST['nickname']."' . * TO '".$_POST['nickname']."'@ 'localhost'";

hab nun die ´ ` in ' abgeändert, Fehlerausgabe bleibt jedocht :/
 
Hallo,

muss für mehrere Befehle nicht ; verwendet werden. Komma als Trennzeichen hab ich bisher noch nicht gesehen.


N43
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben