Autor | Zpráva | ||
---|---|---|---|
Jirkass Profil * |
#1 · Zasláno: 23. 6. 2010, 20:01:49
Dobrý večer,
Chtěl bych Vás poprosit o shlédnutí následujícího kódu, mám takový pocit, že nefunguje na 100%, protože u některých (není to pravidelně, dá se říct, že náhodně) vrací mysql_affected_rows 0, i přesto, že se dotaz provede správně (záznam se vloží do databáze). mysql_query('INSERT INTO `accounts` (`username`, `password`, `email`, `hash`) VALUES("'.mysql_real_escape_string($_POST['user_name']).'", SHA1(mysql_real_escape_string($_POST['password1'])), "'.mysql_real_escape_string($_POST['email']).'", "'.mysql_real_escape_string($hash).'")'); if(mysql_affected_rows() > 0){ ... } else { echo 'Záznam se nepodařilo vložit do databáze.'; } Ovšem, jak jsem psal již výše, občas to vypíše hlášku Záznam se nepodařilo vložit do databáze., i přes to, že se záznam do databáze vložil. A proto se ptám, když tento dotaz provede například 10 uživatelů ve stejnou dobu, není možné, aby se mysql_affected_rows řídilo podle předchozího/cizího dotazu a ne tohoto? Nemám kód upravit nějak takto, aby se specifikoval daný sql dotaz? Možná je to laická otázka, ale snažím se přijít na problém. $sql = mysql_query(...) if(mysql_affected_rows($sql)){ ... |
||
radvis Profil |
#2 · Zasláno: 23. 6. 2010, 20:41:21
nestačilo by:
$sql = mysql_query('INSERT INTO `accounts` (`username`, `password`, `email`, `hash`) VALUES("'.mysql_real_escape_string($_POST['user_name']).'", SHA1(mysql_real_escape_string($_POST['password1'])), "'.mysql_real_escape_string($_POST['email']).'", "'.mysql_real_escape_string($hash).'")'); if($sql){ echo "povedlo se"; }else{ echo "nepovedlo se!"; } ? |
||
Jirkass Profil * |
#3 · Zasláno: 23. 6. 2010, 22:11:24
radvis:
To je fakt, mysql_affected_rows se nejspíše používá, pokud se očekává více výsledků než 1, pokud se nepletu, že? Nicméně děkuji. |
||
radvis Profil |
#4 · Zasláno: 23. 6. 2010, 22:31:22
To nevím, to jsem nikdy nepoužíval tvůj příklad.
|
||
Časová prodleva: 14 let
|
0