| 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: 12 let
|
|||
0