Autor Zpráva
n5ver
Profil
Ahoj, kdyz je tabulka prázdná, tak mi php do tabulky uživatele zapíše, ale když už v ní jeden uživatel je, tak se nezapíše.
SQL:
CREATE TABLE `uzivatele` (
   `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
   `username` VARCHAR( 32 ) NOT NULL ,
   `password` VARCHAR( 32 ) NOT NULL ,
   `mail` VARCHAR( 64 ) NOT NULL ,
    UNIQUE (`username`)
) ENGINE = innodb CHARACTER SET cp1250 COLLATE cp1250_czech_cs

PHP:
<?php
$con =  mysqli_connect("","","","")

if(IsSet($_GET['j'] AND $_GET['p'] AND $_GET['m'])){
$jmeno = $_GET['j'];
$md5pass = $_GET['p'];
$mail = $_GET['m'];


$prepare = $con->prepare("INSERT INTO `uzivatele`(`username`,`password`,`mail`) VALUES (?,?,?)");
$prepare->bind_param("sss", $jmeno, $md5pass, $mail);
$prepare->execute();
$con->close();

header("");
}

else{
header("");
}
?>
Alphard
Profil
Není problém v unikátním username?
n5ver
Profil
Alphard:
Zkusil jsem odstranit unikátní username, ale stejně se mi první uživatel přidá a když chci přidat dalšího zůstane bílá obrazovka, takže php se nedokončí.

btw na serveru je nejnovější PHP 5.5.7
Alphard
Profil
Teď jsem si mimochodem všiml těch AND v isset(), proměnné oddělujte čárkami.

K řešenému problému ale nevím, co dodat :-/ Vypište si chyby.
n5ver
Profil
Tak už jsem to vyřešil přepsáním na

mysql_connect ("", "", "");
        mysql_select_db ("");
        
        mysql_query("insert into uzivatele (username, password, mail) values ('$jmeno', '$md5pass', '$mail')");

        header("");
Alphard
Profil
To nebyl úplně šťastný nápad. Extenze mysql_* bude v nových verzích PHP zrušena.
n5ver
Profil
Aha a čím bych to měl nahradit?
aDAm
Profil
tím co si smazal, tedy mysqli_*
lionel messi
Profil
Alphard:
Extenze mysql_* bude v nových verzích PHP zrušena.
Zrušená nadobro alebo len pre použite mysqli? A čím bude nahradená?
aDAm
Profil
lionel messi:
ano nadobro. Nahrazena už dávno je: mysqli_*
Alphard
Profil
Hodně populární je také PDO. Navíc frameworky často disponují vlastními vrstvami od dibi, přes NotORM, až po Doctrine a podobné, takže se člověk s přímou prací s db ani moc nesetká.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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