Autor | Zpráva | ||
---|---|---|---|
Jcas Profil * |
#1 · Zasláno: 17. 5. 2014, 10:02:40
Uložím data do DB a hned na dalším řádku php je chci vybrat. Chci zjistit, jaké bylo přiřazeno `id`.
Mám tušení, že chybu mi to vyhazuje proto, že SELECT je moc rychlý a php se snaží vybrat data dřív, než je o dva řádky stihne pomocí INSERT uložit. Je to možné? Jak se to řeší? Lze zpomalit php script? |
||
jenikkozak Profil |
#2 · Zasláno: 17. 5. 2014, 10:12:50
Na zjištění id posledního vloženého záznamu použij funkci mysql_insert_id či její alternativy.
„Je to možné?“ Nejspíše ne. Jakou chybu ti to vyhazuje? |
||
Jcas Profil * |
#3 · Zasláno: 17. 5. 2014, 10:20:20 · Upravil/a: Jcas
Jakou chybu ti to vyhazuje?
Mou vlastní chybovou hlášku. $nick = $mysqli->real_escape_string($_POST['nick']); //ošetření dat pro DB $email = $mysqli->real_escape_string($_POST['email']); // uložit data do DB |---id---|---nick---|---email---|---heslo---|---potvrzeni---|---kod---| $statement = $mysqli->prepare("INSERT INTO `USER` VALUES (?,?,?,?,?,?)"); if(!$statement) { presmerujNaChybu(57); } $statement->bind_param("isssis", $a=0, $nick, $email, crypt($_POST['heslo']), $e=0, vrat_nahodny_kod()); $statement->execute(); $statement->close(); // nachystat email a odeslat $query = "SELECT * FROM `USER` WHERE `nick` = '" . $nick . "'"; if ($result = $mysqli->query($query)) { $row = $result->fetch_assoc(); /* fetch associative array */ $result->close(); /* free result set */ $mail = $_POST['email']; $predmet = 'Registrace do databáze chovatelů'; $zprava = "Děkujeme za registraci.\r\n Pro dokončení registrace navštivte prosím následují odkaz\r\n ."&nick=".$_row['nick']."&id=".$_row['id]http://www.zocschmoravskebranice.eu/DB-chovatelu/registrace.php.?kod=".$row['kod']."&nick=".$_row['nick']."&id=".$_row['id']; if (cs_mail($mail, $predmet, $zprava, "From: zocschmoravskebranice@seznam.cz".PHP_EOL)) { header("Location: konec.php?kod=".$row['kod']."&nick=".$_row['nick']."&id=".$_row['id']); // přesměrovat na konečnou stránku exit(); } else { presmerujNaChybu(55); } } else { presmerujNaChybu(56); } if ($result = $mysqli->query($query)) Tak jsem zase založil zbytečné vlákno. Vyhazovalo mi to mou vlastní chybovou hlášku 56 - "nepodařilo se načíst data z DB", ale vyhazoval ji soubor konec.php. Omlouvám se a děkuji |
||
Časová prodleva: 10 let
|
0