/ / Jak uruchomić instrukcję przygotowaną przez PDO (z nazwanymi symbolami zastępczymi) w phpmyadmin? - php, mysql, pdo, phpmyadmin, przygotowane-instrukcja

Jak uruchomić instrukcję przygotowaną przez PDO (z nazwanymi symbolami zastępczymi) w phpmyadmin? - php, mysql, pdo, phpmyadmin, gotowe instrukcje

Dawno minęły czasy, kiedy robiłem coś takiego:
WHERE something = "".$query->real_escape_string($your_unsafe_value_here).""

Więc przeszedłem do przygotowanych oświadczeń, aleJestem trochę zdezorientowany, jak teraz debugować niektóre z moich zapytań. Oto przykładowa instrukcja przygotowana przez PDO, która używa nazwanych symboli zastępczych. Wziąłem to z podręcznika php online:

/* 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();

Jeśli muszę wykonać szybki test zapytania, w jaki sposób uruchomić coś takiego phpmyadmin? (... czy istnieje inny graficzny interfejs użytkownika MySQL, który może z łatwością obsługiwać tego rodzaju zapytania?)

Odpowiedzi:

1 dla odpowiedzi № 1

Możliwe jest uruchomienie zapytania w Toad dla MySQL. Po uruchomieniu zapytania pojawia się wyskakujące okienko do wprowadzenia zmiennych


0 dla odpowiedzi nr 2

Nie można uruchamiać zapytań PDO bezpośrednio w phpMyAdmini nie znam żadnych innych programów, które mogłyby to zrobić. Możesz zbudować własny, pisząc kod z formularza do pliku i wyciskając go w tle. Ale to nie jest bardzo bezpieczne, ponieważ możesz tam uruchomić cokolwiek


0 dla odpowiedzi № 3

W moim przypadku to właśnie skończyłem. Mam nadzieję, że to rozwiązanie pomoże komuś innemu, niezależnie od moich szczegółów konfiguracji ...

1) Włączyłem logowanie do zapytania my.ini plik (używam Windows / WAMP):

[mysqld]

log = "C:wamplogsqueries.log"

2) Musiałem powiedzieć PDO naśladować przygotowane oświadczenia (Używam 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) Zachowaj queries.log plik otwórz w Notatniku ++ i po prostu ponownie załaduj plik, gdy pojawi się monit w Notatniku ++. Skopiuj i wklej ostatnie zapytanie do phpmyadmin. Teraz mogę debugować zapytanie!

Prawdopodobnie później będę musiał wymyślić bardziej zautomatyzowane podejście, ale wydaje się, że na razie to działa.