BG/BRG Lerchenfeld
Schulbezeichnung
Impressum |  Kontakt |  Neues |  Sitemap

PDO

Die PHP Data Objects(PDO)-Erweiterung stellt eine leichte, konsistente Schnittstelle bereit, um mit PHP auf Datenbanken zuzugreifen.

http://www.php-resource.de/handbuch/ref.pdo.htm
http://at2.php.net/pdo

SQl-Injection

SQL-Injection (dt. SQL-Einschleusung) bezeichnet das Ausnutzen einer Sicherheitslücke in Zusammenhang mit SQL-Datenbanken, die durch mangelnde Maskierung oder Überprüfung von Metazeichen in Benutzereingaben entsteht. Der Angreifer versucht dabei, über die Anwendung, die den Zugriff auf die Datenbank bereitstellt, eigene Datenbankbefehle einzuschleusen. Sein Ziel ist es, Daten in seinem Sinne zu verändern oder Kontrolle über den Server zu erhalten.

http://www.youtube.com/watch?v=1UL_jdtXfi4
http://www.tutorials.de/forum/php-tutorials/278244-sichere-datenbankzugriffe-durch-prepared-statements.html


Beispiel 1: Rückgabe eines Datensatzes

$id=$_GET["id"];
$user="...";//Username
$passwort="...";//Passwort des Users
$dbname="...";//Datenbankname
$dbc = new PDO("mysql:host=localhost;dbname=$dbname", $user, $passwort);
//$dbc->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT vorname, nachname FROM berechtigungen WHERE id=:id";
$stmt = $dbc->prepare($sql);
$stmt->bindParam( ":id", $id,PDO::PARAM_INT );
if($stmt->execute())
{
  $data = $stmt->fetch(PDO::FETCH_OBJ);
  echo $data->vorname ." ". $data->nachname;
 }
$stmt = null;
$dbc = null;

Beispiel 2: Rückgabe mehrerer Datensätze

$str=$_GET["str"];
$user="...";//Username
$passwort="...";//Passwort des Users
$dbname="...";//Datenbankname
$dbc = new PDO("mysql:host=localhost;dbname=$dbname", $user, $passwort);
$sql="Select Vorname, Nachname From schueler where Klasse=:str order by Zahl asc";
$stmt = $dbc->prepare($sql);
$stmt->bindParam(":str", $str,PDO::PARAM_STR, 3);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_OBJ);
foreach ($result as $v) {
    echo $name= $v->Vorname." ".$v->Nachname.", ";
} #end foreach

$result=null;
$dbc=null;