Avatar billede blood Nybegynder
03. oktober 2001 - 00:17 Der er 10 kommentarer og
1 løsning

[Opret bruger] Hvad er der nu galt?

$host =  \"localhost\";
$user =  \"XXXXXX\";
$pass =  \"XXXXXX\";
$mysql = mysql_connect($host,$user,$pass) or die(mysql_error());
mysql_create_db( \"$newuser\", $mysql ) or die(mysql_error());
mysql_query( \"GRANT USAGE ON \'$newuser\'.* TO $newuser @ \'%\' IDENTIFIED BY \'$newpass\'\") or die(mysql_error());
mysql_query( \"GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP ON $newuser.* TO $newuser@\'%\'\") or die(mysql_error());
mysql_query( \"UPDATE mysql.user SET Host = \'localhost\' WHERE User = \'$newuser\'\") or die(mysql_error());
mysql_query( \"FLUSH PRIVILEGES\") or die(mysql_error());
mysql_close($mysql);


Hvis der er en bruger som bruger special tegn som - og _ i deres brugernavn får jeg denne fejl

You have an error in your SQL syntax near \'\'aske-maske\'.* TO \'aske-maske@%\' IDENTIFIED BY \'1234\'\' at line 1

Brugeren er aske-maske og koden er 1234

Scriptet virker fint uden special tegn

En som kan tilrette det?
Avatar billede blood Nybegynder
03. oktober 2001 - 00:19 #1
Ups nej det var denne fejl...
You have an error in your SQL syntax near \'\'aske-maske\'.* TO aske-maske @ \'%\' IDENTIFIED BY \'6061\'\' at line 1
Avatar billede jalle Nybegynder
03. oktober 2001 - 00:26 #2
Det er ikke lovligt at bruge - og _ når man opretter brugere til en mysqldatabase.
Avatar billede blood Nybegynder
03. oktober 2001 - 00:33 #3
Jo fordi når jeg opretter en bruger i mysql via phpmyadmin, eller mysql(lin) så virker den fint når der er \"-\" i navnet
Avatar billede coderdk Praktikant
03. oktober 2001 - 01:23 #4
mysql_query( \"GRANT USAGE ON $newuser\" . \".* TO $newuser\" .@% IDENTIFIED BY \'$newpass\'\") or die(mysql_error());
Avatar billede blood Nybegynder
03. oktober 2001 - 01:45 #5
Giver jo bare en Parse error
Avatar billede coderdk Praktikant
03. oktober 2001 - 03:06 #6
My bad:

mysql_query( \"GRANT USAGE ON $newuser\" . \".* TO $newuser\" . \"@% IDENTIFIED BY \'$newpass\'\") or die(mysql_error());
Avatar billede blood Nybegynder
03. oktober 2001 - 13:23 #7
Stadig fejl..
You have an error in your SQL syntax near \'-maske.* TO aske-maske@% IDENTIFIED BY \'6061\'\' at line 1
Avatar billede coderdk Praktikant
03. oktober 2001 - 14:55 #8
Ok det forstår jeg ikke, prøv:

mysql_query( \"GRANT USAGE ON \'$newuser\" . \".*\' TO \'$newuser\" . \"@%\' IDENTIFIED BY \'$newpass\'\") or die(mysql_error());
Avatar billede blood Nybegynder
03. oktober 2001 - 17:00 #9
You have an error in your SQL syntax near \'\'aske-maske.*\' TO \'aske-maske@%\' IDENTIFIED BY \'6061\'\' at line 1
Avatar billede blood Nybegynder
03. oktober 2001 - 20:35 #10
/* ----------------------- Set of misc functions ----------------------- */

    /**
    * Adds backquotes on both sides of a database, table or field name.
    * Since MySQL 3.23.6 this allows to use non-alphanumeric characters in
    * these names.
    *
    * @param  string  the database, table or field name to \"backquote\"
    * @param  boolean  a flag to bypass this function (used by dump functions)
    *
    * @return  string  the \"backquoted\" database, table or field name if the
    *                  current MySQL release is >= 3.23.6, the original one
    *                  else
    */
    function backquote($a_name, $do_it = TRUE)
    {
        if ($do_it
            && MYSQL_INT_VERSION >= 32306
            && !empty($a_name) && $a_name != \'*\') {
            return \'`\' . $a_name . \'`\';
        } else {
            return $a_name;
        }
    } // end of the \'backquote()\' function


Har selv fået det til at virke... :o)
Avatar billede coderdk Praktikant
03. oktober 2001 - 21:04 #11
heheh kewl
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester