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 № 1Moż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.