selfhtml.de - Alles für den Webmaster!

 

Empfehlung:

wix.com

Kostenlose Homepage

Besuchen Sie auch:

Jobs:

Re: MYSQL Abfrage welche ID ein bestimmter Pointer besitzt

Autor: T.Jung [Beiträge: 3683]
Datum: 10.05.2015 20:22:22

Puuuh, ich war lange nicht hier...
Aber auch wenn das Vorgängerposting schon fast einen Monat alt ist, möchte ich doch gerne noch etwas dazu sagen...

> Die Unterschiede sind marginal. MySQLi ist
> objektorientiert und hat eine Funktionsweise, die
> deutlich abgehärteter gegen Angriffe ist, als
> bisher. (...) Man kann sogar weitgehend die Syntx
> Hauptgrund für den Umstieg ist aber, dass bei den
> PHP-Umgebungen oberhalb 5.x die Unterstützung für
> MySQL von vielen Providern deaktiviert wird. Da
> PHP 4.x nicht auf dem aktuellen Sicherheitsstand
> ist, wird es also höchste Zeit umzustellen.

Auch ich stelle ältetere Projekte derzeit immer dann um, wenn ich sie mal wieder anfassen muss -- und neue Projekte (gerade ist eins in der Mache) schreibe ich von vorneherein ohne die MySQL-Funktionen von PHP. Allerdings habe ich mich für PDO entschieden; und zwar hauptsächlich (nicht ausschließlich) aus einem ganz bestimmten Grund:
Die benannten Parameter bei den "prepared statements".

Sehen wir uns zunächst mal einen Codeschnippsel in MySQLi-Syntax an:

<?php
$query = $mysqli->prepare('
    SELECT * FROM users
    WHERE username = ?
    AND email = ?
    AND last_login > ?');
    
$query->bind_param('ssi', 'test', $mail, time() - 3600);
$query->execute();
?>

Hier muss ich gleich zweimal abzählen:
Zunächst einmal bei der Angabe des Variablentyps
    bind_param('ssi' ...
und dann bei der Angaben der Werte:
    'test', $mail, time() - 3600


Beides muss zur Abfolge der Feldnamen im Query passen -- setze ich eins davon in die falsche Reihenfolge, schmeißt mir PHP eine Fehlermeldung um die Ohren.
Ich bin fast hinten rübergekippt, als ich diese Syntax gesehen habe! ;-)
Ich, der schon immer sprintf() gehasst habe, weil man da die übergebenen Argumente von Hand abzählen muss, soll jetzt sämtlich DB-Queries auf die Art und Weise schreiben?!?

Sehen wir uns den gleichen Code in PDO-Syntax an:
<?php
$params = array(':username' => 'test', ':email' => $mail, ':last_login' => time() - 3600);
    
$pdo->prepare('
    SELECT * FROM users
    WHERE username = :username
    AND email = :email
    AND last_login > :last_login');
    
$pdo->execute($params);
?>

So mag ich's! :-)
Ich verwende benannte Platzhalter (:username, :email, :last_login) und muss nix abzählen. Das ist natürlich Geschmackssache, aber ich mag eben diese Vorgehensweise lieber.

So, und damit tauche ich wieder ab -- werde in nächster Zeit wieder nicht dazu kommen, hier vorbeizuschauen...
Gruß,
Tobias


Beiträge

Antwort schreiben

Username: Usernamen registrieren
Passwort: Passwort vergessen?
Thema:
  Bitte benutze für deinen Beitrag die Groß-/Kleinschreibung!
Beitrag:
Link (URL):
Titel für Link:
Grafik (URL):
  Die Breite der Grafik darf 468 Pixel nicht überschreiten.
 
E-Mail-Benachrichtigung:



Zum Abschicken deines Beitrags bitte die Schaltfläche "Abschicken" nur einmal anklicken und warten. Der Server braucht manchmal einige Zeit, bis er den Beitrag in die Datenbank übernommen hat. Wenn du die Schaltfläche mehrmals drückst, erscheint dein Beitrag auch mehrmals im Forum.

Bewerten Sie Ihren Webhosting-Provider

Webhosting Provider bewerten und Apple iPad gewinnenWie zufrieden sind Sie mit Ihrem Webhosting-Provider? Gibt es Probleme beim Service, mit der Performance oder der Abrechnung?

Teilen Sie jetzt Ihre Erfahrungen mit anderen Webmastern und schreiben Sie eine Provider-Bewertung. Mit etwas Glück können Sie ein Apple iPad gewinnen!

Weitere Informationen und Teilnahme...