php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.05.2008, 10:29  
Neuer Benutzer
 
Registriert seit: 16.05.2008
Beiträge: 4
Mack22
Standard Frage zu prepared statements mit pdo

Hallo zusammen,

ich bin gerade in einer Security-Vorlesung und muss ein kleines Proggi mit prepared statements ausrüsten. Das ganze baue ich mit PDO auf.

Allerdings habe ich jetzt 2 Probleme / Fragen:

1.) Wie kann ich die Parameter nach Limit übergeben?

PHP-Code:
$query "SELECT * FROM klausuren WHERE punkte = :punkte LIMIT :von, :bis 
Ich habe gelesen das dies gar nicht funktioniert, sprich das nach LIMIT keine Parameter mehr übergeben werden können. Wo liegt da mein Denkfehler?

2.) Um die Ergebnisse zu sortieren hatte ich das bisher wie folgt gelöst:

PHP-Code:
if ($sort "1"){$sortierung "ORDER by name DESC, vorname";}
if (
$sort "2"){$sortierung "ORDER by name ASC, vorname";}
if (
$sort "3"){$sortierung "ORDER by punkte DESC, name";}
if (
$sort "4"){$sortierung "ORDER by punkte ASC, name";}

$query "SELECT * FROM klausuren WHERE punkte = :punkte $sortierung LIMIT :von, :bis" 
Das geht ja jetzt nicht mehr - aber wie kann ich das jetzt lösen - eine Idee war in einen Platzhalter immer entweder DESC oder ASC mitzugeben (bei BINDPARAM) - aber das hatte nicht funktioniert.

Hat jemand von euch eine Idee? Wäre echt super wichtig für mich!

Vielen vielen Dank!

PS: Wenn Ihr noch ein gutes Tutorial zum Thema Prepared Statement wisst wäre ich euch auch dankbar - finde nur so Grundlagen...
Mack22 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.05.2008, 11:54  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

hi,

zu 1:

das in prepared statements wäre falsch. prepared statements dienen ausschließlich dazu, sicherzustellen, das keine sql-injection möglich ist. ergo würde PHP (oder der SQL server) einen möglicherweise eingegebenen string in die zahl 0 umwandeln - ein vermeidbarer fehler.

zu 2:

Zitat:
Das geht ja jetzt nicht mehr - aber wie kann ich das jetzt lösen - eine Idee war in einen Platzhalter immer entweder DESC oder ASC mitzugeben (bei BINDPARAM) - aber das hatte nicht funktioniert.
natürlich geht das noch, du baust dir deinen query zusammen und übergibst diesen dann an $pdo->prepare()...
__________________
PHP4?!?>>>Aktuelle PHP Version: 5.2.11 || 5.3.0
Suse 11.2 *vorfreude*
brian johnson ist offline   Mit Zitat antworten
Alt 16.05.2008, 13:17  
Neuer Benutzer
 
Registriert seit: 16.05.2008
Beiträge: 4
Mack22
Standard Zusatzfrage

Hi Brian Johnson,

vielen Dank für Deine Antwort.
Ich steh allerdings bei Frage 2 noch ein bisschen auf dem Schlauch - könntest Du mir bitte noch ein wenig mehr Input geben?
Ich knobel da jetzt schon ewig rum und das doofe ist das ich mir die queries halt jetzt nicht mehr ausgeben lassen kann...

Vielen vielen Dank!
Mack22 ist offline   Mit Zitat antworten
Alt 16.05.2008, 15:10  
Neuer Benutzer
 
Registriert seit: 16.05.2008
Beiträge: 4
Mack22
Standard Nachtrag

Also würde ich das dann folgendermaßen machen?:

PHP-Code:
if ($sort "1"){$sortierung "ORDER by name DESC, vorname";} 
if (
$sort "2"){$query "SELECT * FROM klausuren WHERE punkte = :punkte ORDER by name ASC, vorname LIMIT :von, :bis";} 
if (
$sort "3"){$query "SELECT * FROM klausuren WHERE punkte = :punkte ORDER by punkte DESC, name LIMIT :von, :bis";} 
if (
$sort "4"){$query "SELECT * FROM klausuren WHERE punkte = :punkte ORDER by punkte ASC, name LIMIT :von, :bis";} 


$stmt $dbc->prepare($query); 

Vielen Dank
Mack22 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Frage zu Typen und Performence notyyy PHP-Fortgeschrittene 13 14.11.2007 02:18
Smarty frage: switch($action) PHP Tipps 2007 5 30.12.2006 18:07
DNS Problem / Frage b++ Server, Hosting und Workstations 3 12.10.2006 13:27
Frage zu Speicherreservierung in PHP FiSiHRO PHP Tipps 2005-2 4 13.09.2005 12:00
[PDO] Frage zur Portabilität freq.9 PHP-Fortgeschrittene 2 29.07.2005 13:28
.htaccess - Frage Stümper PHP Tipps 2005 11 30.05.2005 11:56
Performence Frage PHP-Fortgeschrittene 10 06.05.2005 19:00
Frage zu einem Editformular PHP Tipps 2005 3 25.04.2005 14:58
mal ne Frage PHP Tipps 2005 7 14.04.2005 09:46
Frage zu einer Liste? HTML, Usability und Barrierefreiheit 2 15.02.2005 16:56
Hallo und Frage zu dynamischer Veränderung in Textfeldern. PHP Tipps 2004-2 2 27.12.2004 22:29
[Erledigt] Frage zur Funkrionen? PHP Tipps 2004-2 10 01.12.2004 09:42
Kurze Frage an die Php Profis PHP Tipps 2004-2 11 24.11.2004 17:38
Frage zur Formatierung von Text obi PHP Tipps 2004 1 03.11.2004 13:35
[Erledigt] Frage! PHP Tipps 2004 4 27.07.2004 11:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
pdo order by, pdo prepare limit, php pdo order by, php pdo tutorial, pdo statement ausgeben, pdo tutorial, pdo prepare, php pdo statement ausgeben, pdo prepared statements, pdo php tutorial, php pdo prepare, pdo limit, pdo prepared statements limit, prepared statement limit, pdo select, pdo prepare select, pdo prepared statements select, pdo wildcard, order by pdo, prepared statements limit

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:29 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.