Externer Datenbankzugriff? (erlauben)

MySQL, PostgreSQL, SQLite
shaftie
Posts: 9
Joined: 2003-11-09 10:02
Location: Göttingen

Externer Datenbankzugriff? (erlauben)

Post by shaftie » 2004-02-29 18:27

Guten Tag...

Ich möchte extern Datenbanken auf einem Server erstellen... Das Script dazu:

Code: Select all

// verbinde als ein Benutzer, der eine neue Datenbank anlegen darf 
$link = mysql_connect("nx-server.de", "root", "*********"); 

// lege die Datenbank an 
$query = "CREATE DATABASE IF NOT EXISTS $_POST['dbname'];"; 
$result = mysql_query($query); 
if (!$result) 
  die("Fehler beim Anlegen der Datenbank: " . mysql_error()); 

// setze die Rechte für den neuen Benutzer 
$query = "GRANT SELECT, INSERT, UPDATE, DELETE ON $_POST['dbname'].* TO '$_POST['dbname'] . '%'nx-server.de' IDENTIFIED BY '$_POST['pass']'"; 
$result = mysql_query($query); 
if (!$result) 
  die(); 
mysql_close($link);
Doch folgender Fehler erscheint:

Code: Select all

Fehler beim Anlegen der Datenbank: 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 '' at line 1
In phpmyadmin ist root mit "%" bereits gesetzt, aber es funktioniert trotzdem nicht... Was mache ich falsch?

Grüße

shaftie

Edit: Der Fehler sagt zwar etwas anderes aus, aber vorhin kam: Host bla is not allowed etc.

Aber was ist außerdem falsch an meiner MySQL Syntax?

deanwickert
Posts: 77
Joined: 2003-05-13 23:20
Location: Lahnstein

Re: Externer Datenbankzugriff? (erlauben)

Post by deanwickert » 2004-02-29 19:56

Code: Select all

$query[0] = 'CREATE DATABASE IF NOT EXISTS ' . $name;
$query[1] = 'GRANT USAGE ON *.* TO "' . $user . '"@"localhost" IDENTIFIED BY "' . $pass . '"';
$query[2] = 'GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON ' . $name . '.* TO "' . $user . '"@"localhost"';