Autor Zpráva
martin5504
Profil
Dobrý deň, urobil som si malý script ktorý mi vytváral databázu avšak potreboval som aby vytvorilo tu DB, ale aj aby zapisalo nieco do jednej tabuľky, snažil som sa takto, ale tvorba DB ide no do tabuľky sa nič nevloží. V čom prosím vás robím chybu?

Vopred ďakujem.

<?php

$db =  $_POST['db'];
$uziv =  $_POST['uziv'];
$heslo =  $_POST['heslo'];
$user = $_POST['user'];       
       
mysql_connect('localhost','root','test','test');
mysql_query("create database $db");
mysql_query("GRANT ALL PRIVILEGES ON $db.* TO '$uziv'@'%' IDENTIFIED BY '$heslo' WITH GRANT OPTION;");  
mysql_query("INSERT INTO db (id, user, nazov, db, heslo) VALUES ('','$user','$uziv','$db','$heslo')");
mysql_close();

echo "Uspesne"
          
?>
Alphard
Profil
A existuje tabulka db? Funkci mysql_connect() dáváte chybný 4. parametr.
martin5504
Profil
Tabuľka existuje, ako myslíte chybný parameter? Veď DB mi vytvorí keby bola chyba už tam tak by mi ani db nevytvorilo či?
Adam16
Profil
prečo použivaš mysql a nie mysqli. a napajaš sa na DB s meno test a heslo test hej ?
martin5504
Profil
Údaje mám zmenené na správne, nechcel som ich sem písať. Skúsim teda ešte z mysqli.


DOPLNOK:

Ak idem cez mysqli, tak ani nevytvorí DB.

[Sun Aug 11 05:46:44 2013] [error] [client 62.197.196**] PHP Warning: mysqli_query() expects at least 2 parameters, 1 given in /var/www/*****/admin/db_add.php on line 9, referer: http://217.16.176.210/*****/admin/sprava_db_add.php?id=1
[Sun Aug 11 05:46:44 2013] [error] [client 62.197.196] PHP Warning: mysqli_query() expects at least 2 parameters, 1 given in /var/www/*****/admin/db_add.php on line 10, referer: http://217.16.176.210/*****/admin/sprava_db_add.php?id=1
[Sun Aug 11 05:46:44 2013] [error] [client 62.197.196] PHP Warning: mysqli_query() expects at least 2 parameters, 1 given in /var/www/*****/admin/db_add.php on line 11, referer: http://217.16.176.210/*****/admin/sprava_db_add.php?id=1
[Sun Aug 11 05:46:44 2013] [error] [client 62.197.196] PHP Warning: mysqli_close() expects exactly 1 parameter, 0 given in /var/www/*****/admin/db_add.php on line 12, referer: http://217.16.176.210/******/admin/sprava_db_add.php?id=1
Adam16
Profil
martin5504:

to ze tam maš mysql a nie mysqli tak to by nemala byt chyba... ja som sa len pytal prečo pouzivas mysql... pravdepodobne ide ten connect


aspon vidiš kolko tam maš chyb...
martin5504
Profil
Jaj tak, tak čo to môže spôsobovať? Ak používam mysql tak mám všetko bez chýb.
Adam16
Profil
martin5504:

najprv skus prepisat myslq na mysqli ale stači ak to spraviš iba v db_add.php a potom vyskušaj
martin5504
Profil
mysqli_connect('localhost','root','test','test');
mysqli_query("create database $db");
mysqli_query("GRANT ALL PRIVILEGES ON $db.* TO '$uziv'@'%' IDENTIFIED BY '$heslo' WITH GRANT OPTION;");  
mysqli_query("INSERT INTO db (id, user, nazov, db, heslo) VALUES ('','$user','$uziv','$db','$heslo')");
mysqli_close();

Skúšal som to takto, ale vtedy boli errory a nefungovalo to.
Adam16
Profil
3. riadok... mysqil ale mysqli
martin5504
Profil
Áno mal som to tak, to som len zle napísal tu.
Adam16
Profil
no a čo ty vlastne chces aby sa vytvorila DB ale tabulka v DB ?
Monkeys
Profil *
martin5504:

Pretoze pri mysqli (OOP) treba vytvorit instanciu objektu.

asi takto:

$connection = new mysqli(host, usser, pass, db_name);
a potom uz mozes robit operacie ake chces.
$sql = "INSERT INTO db (id, user, nazov, db, heslo) VALUES ('','$user','$uziv','$db','$heslo')";
$connection->query( $sql );
M.


opravujem INSERT som si to nevsimol.

$sql = "INSERT INTO tabulka (stlpce) VALUES (hodnoty)";

M.
Adam16
Profil
Monkeys:

ale on nechce vkladat udaje do DB ako su id, user, db, a heslo ale on chce pravdepodobne vytvorit DB
Alphard
Profil
martin5504:
ako myslíte chybný parameter?
Odkázal jsem manuál, když vás někdo upozorní na špatný parametr, právě tam byste se měl podívat. 4. parametr u mysql_connect() není string. Co je test? Jestli název databáze, měla být použitá mysql_select_db().

Nicméně kolegové vás již vedou na použití mysqli, což je do budoucna jistě výhoda.
pcmanik
Profil
Monkeys:
Nemusí vytvoriť inštanciu, mysqli podporuje aj procedurálne rozhranie.

martin5504:
Tie chyby si nevieš preložiť? Mysqli funkcie očakávajú dva parametre a ty im dávaš len jeden.
Micruss
Profil
martin5504:
pokud používáš MySQLi tak musíš do mysqli_query(); dát i odkaz na připojení k db takže by to vypadalo asi takto

$dbconn = mysqli_connect("localhost", "test", "test", "databáze");

$dotaz = mysqli_query($dbconn, "SQL DOTAZ");
martin5504
Profil
Obi dve sú rozdielnie veci, jedna funkcia mi vytvára DB a druhá do ROOTovej DB a tabuľky dáva údaje.

EDIT : Šlape to! Díki moc

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: