MySQLi - Kan det virkelig være rigtigt ?!?
Det sku' jo være så godt med *i og prepared statements : )Opslag med nøgle ($eMail) for at hente $UiD + $PW fra tabellen USR:
if (! $link = mysqli_connect(DB_URL, DB_USER, DB_PW, DB_BASE))
die("Databasefejl (connect): ".mysqli_connect_errno()." ~ ".mysqli_connect_error()."</body></html>");
if (! $stmt = mysqli_prepare($link, "SELECT UiD,PW FROM USR WHERE eMail=?"))
{
mysqli_close($link);
die("Databasefejl (prepare): ".mysqli_errno()." ~ ".mysqli_error()."</body></html>");
}
if (! mysqli_stmt_bind_param($stmt, "s", $eMail))
{
mysqli_stmt_close($stmt);
mysqli_close($link);
die("Databasefejl (bind_param): ".mysqli_errno()." ~ ".mysqli_error()."</body></html>");
}
if (! mysqli_stmt_execute($stmt))
{
mysqli_stmt_close($stmt);
mysqli_close($link);
die("Databasefejl (execute): ".mysqli_errno()." ~ ".mysqli_error()."</body></html>");
}
if (! mysqli_stmt_bind_result($stmt, $UiD, $PW))
{
mysqli_stmt_close($stmt);
mysqli_close($link);
die("Databasefejl (bind_result): ".mysqli_errno()." ~ ".mysqli_error()."</body></html>");
}
if (! mysqli_stmt_store_result($stmt))
{
mysqli_stmt_close($stmt);
mysqli_close($link);
die("Databasefejl (store_result): ".mysqli_errno()." ~ ".mysqli_error()."</body></html>");
}
if (1 == ($antal = mysqli_stmt_num_rows($stmt)))
{
if (!mysqli_stmt_fetch($stmt))
{
mysqli_stmt_free_result($stmt);
mysqli_stmt_close($stmt);
mysqli_close($link);
die("Databasefejl (fetch): ".mysqli_errno()." ~ ".mysqli_error()."</body></html>");
}
}
mysqli_stmt_free_result($stmt);
mysqli_stmt_close($stmt);
mysqli_close($link);
if ($antal == 0)
die("Fandt ingen user med eMail = $eMail</body></html>");
if ($antal > 1)
die("Mere end 1 user med denne eMail ($eMail) ?!?</body></html>");
echo "Pyha! Fandt($eMail) => UiD=$UiD og PW:$PW";
Det virker fint, men..
- der ER temmelig mange linjer, er der ikke ?
(også selvom jeg samler de mange fejl-udskrifter i én function)