PHP und MySQL Notizen

Fehlerbehandlung

Über die globale Variable $debug kann man Statusausgaben steuern:

$debug="test";
test(10);
function test($value) {
  if ($GLOBALS["debug"]==__FUNCTION__) echo ">>".__LINE__.": value = ".$value;
  ...   
}

Daten von „Außen“ aus den globalen Variablen $_GET, $_POST, oder $_COOKIE auslesen. Fehlermeldungen mit dem Error Suppression Indicator (@) unterdrücken:

if(@$_REQUEST['id']!="") {
  ...
}

Daten von „Außen“ immer maskieren bzw. abzusichern bevor sie per Query an MySQL übermittelt werden:

$id=mysql_real_escape_string($_REQUEST['id']);

MySQL Fehlermeldungen abfangen und ausgeben. Die Funktion die() kann auch ohne Parameter genutzt werden. Im folgenden Beispiel ist ein Tippfehler (naame anstatt name) enthalten:

$result = mysql_query("SELECT id,name FROM tabelle ORDER BY name;") _
or die("Error: ".mysql_error());

Zählen

function count() {
  $qry = "SELECT COUNT(*) FROM ... WHERE ...";
  $ary = mysql_fetch_row(mysql_query($qry));
  return $ary[0];
}

Select mit Prüfung

$qry  = "SELECT ...";
$res  = mysql_query($qry);
($res === FALSE) ? $cnt = 0 : $cnt = mysql_num_rows($res);
if ($cnt) {
  echo "$ary['id']";
}

Select mit Schleife

$qry  = "SELECT ...";
$res  = mysql_query($qry);
while ($ary = mysql_fetch_assoc($res)) {
  echo "$ary['id']";
}

Ausgabe

Bei doppelten Anführungszeichen („) wird die Variable interpretiert, bei einfachen (‚) wird alles als Text interpretiert:

$id = 10;  
print 'id = $id'; // id = $id
print "id = $id"; // id = 10

Ist im Gegensatz zu echo ist print() eine Funktion mit Rückgabe und kann bei Entscheidungsoperatoren genutzt werden:

// Erzeugt eine Fehlermeldung:
$id == 0 ? echo "id ist 0" : echo "id ist nicht 0";
// OK:
$id == 0 ? print "id ist 0" : print "id ist nicht 0";

Skript erneut aufrufen und Zeile aus Tabelle löschen. Einfache Methode um kleine Änderungen auszuführen. Bitte vorher den Benutzer authentisieren, ansonsten kann jeder die Tabelle löschen!

if(@$_REQUEST['action']=="del") {
  mysql_query("DELETE FROM <table> WHERE id=".round($_REQUEST['id']));
}
echo "<a onclick="return confirm('Are your sure?');" _
href=".$_SERVER['PHP_SELF']."?action=del&id=".$row['id'].">Delete</a>
Veröffentlicht in Internet Getagged mit: ,

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*