/ / Wie führe ich eine PDO-Anweisung (mit benannten Platzhaltern) in phpmyadmin aus? - php, mysql, pdo, phpmyadmin, vorbereitete Anweisung

Wie führe ich eine PDO prepared-Anweisung (mit benannten Platzhaltern) in phpmyadmin aus? - php, mysql, pdo, phpmyadmin, vorbereitete Anweisung

Vorbei sind die Zeiten, als ich so etwas tat:
WHERE something = "".$query->real_escape_string($your_unsafe_value_here).""

Also habe ich den Schritt zu vorbereiteten Aussagen gemacht, aberIch bin etwas verwirrt darüber, wie ich jetzt einige meiner Abfragen debuggen kann. Hier ist eine vorbereitete PDO-Anweisung, die benannte Platzhalter verwendet. Ich habe dies aus dem Online-PHP-Handbuch genommen:

/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = "red";
$sth = $dbh->prepare("SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour");
$sth->bindParam(":calories", $calories, PDO::PARAM_INT);
$sth->bindParam(":colour", $colour, PDO::PARAM_STR, 12);
$sth->execute();

Wenn ich eine Abfrage schnell testen muss, wie führe ich so etwas in phpmyadmin? (... oder gibt es eine andere mysql-GUI, die diese Art von Abfragen problemlos verarbeiten kann?)

Antworten:

1 für die Antwort № 1

Es ist möglich, die Abfrage in Toad für MySQL auszuführen. Wenn Sie die Abfrage ausführen, wird ein Popup-Fenster zur Eingabe der Variablen angezeigt


0 für die Antwort № 2

Sie können PDO-Abfragen nicht direkt in phpMyAdmin ausführenund ich kenne keine anderen Programme, die das können. Sie können eigene Programme erstellen, indem Sie den Code aus einem Formular in eine Datei schreiben und diesen Code im Hintergrund ausloten


0 für die Antwort № 3

Für mein Setup habe ich das letztendlich gemacht. Hoffentlich hilft diese Lösung jemand anderem, unabhängig von meinen Setup-Details ...

1) Ich habe die Abfrageprotokollierung in meinem aktiviert my.ini Datei (Ich verwende Windows / WAMP):

[mysqld]

log = "C:wamplogsqueries.log"

2) Ich musste PDO dazu sagen emulieren Sie vorbereitete Aussagen (Ich verwende Laravel 4.1):

// Before you run the query...
$pdo = DB::connection()->getPdo();
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES , true);
// run query here...
// and then die, so it"s the last query ran
die();

3) Behalte das queries.log Datei in Notepad ++ öffnen und einfach neu laden, wenn Sie von Notepad ++ dazu aufgefordert werden. Kopieren Sie die letzte Abfrage und fügen Sie sie in phpmyadmin ein. Jetzt kann ich die Abfrage debuggen!

Ich werde wahrscheinlich später einen eher automatisierten Ansatz finden müssen, aber das scheint im Moment zu funktionieren.