Autor Zpráva
Jirkass
Profil *
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
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 *
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
To nevím, to jsem nikdy nepoužíval tvůj příklad.

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:

0