Moderator |
|
Normaal doe je zoiets:
<?php
$query = "SELECT * FROM whereever WHERE whatever";
$result = mysql_query($query) or die(mysql_error());
if(mysql_num_rows($result) > 0)
{
while($row = mysql_fetch_assoc($result))
{
// doe iets met $row
}
mysql_free_result($result);
}
?>
<?php $query = "SELECT * FROM whereever WHERE whatever"; { { // doe iets met $row } } ?>
Maar deze riedel kun je inkorten als je voor deze zooi een functie schrijft - daar kun je dan tevens foutafhandeling in verwerken.
<?php
function query($query, $fetch="assoc")
{
$die = false; // stoppen bij fout?
$log = false; // fout loggen?
$redirect = false; // doorsturen naar andere pagina bij fout?
$ret = array();
$res = @mysql_query($query); // voer query uit - onderdruk fouten
// fouten?
if(mysql_error() != "")
{
// error handling
$err = array();
$err[] = mysql_errno(); // 999-1175
$err[] = htmlentities(mysql_error()); // possible javascript inserts
$err[] = htmlentities($query, ENT_QUOTES); // for readability
// die?
if($die)
{
die("<pre>".print_r($err, 1)."</pre>");
}
// log?
if($log)
{
// handel log af
// gebruik mysql_errno(), mysql_error(), $query
}
// relocate?
if($redirect)
{
// redirect hier evt. naar een
// pagina met een nette foutmelding
}
}
else
{
// hier zou je statistieken van queries bij kunnen houden
// zoals het tellen van correct uitgevoerde queries
// any results?
if(mysql_num_rows($res))
{
// fetch results
switch($fetch)
{
// fetch row
case "row":
while($row = mysql_fetch_row($res)) $ret[] = $row;
break;
// fetch assoc - is also default
case "assoc":
default:
while($row = mysql_fetch_assoc($res)) $ret[] = $row;
}
// free results
mysql_free_result($res);
}
}
// return results
return $ret;
}
?>
<?php function query($query, $fetch="assoc") { $die = false; // stoppen bij fout? $log = false; // fout loggen? $redirect = false; // doorsturen naar andere pagina bij fout? $res = @mysql_query($query); // voer query uit - onderdruk fouten // fouten? { // error handling $err[] = htmlentities($query, ENT_QUOTES ); // for readability // die? if($die) { } // log? if($log) { // handel log af // gebruik mysql_errno(), mysql_error(), $query } // relocate? if($redirect) { // redirect hier evt. naar een // pagina met een nette foutmelding } } else { // hier zou je statistieken van queries bij kunnen houden // zoals het tellen van correct uitgevoerde queries // any results? { // fetch results switch($fetch) { // fetch row case "row": break; // fetch assoc - is also default case "assoc": default: } // free results } } // return results return $ret; } ?>
|