![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 4 Dołączył: 9.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam taką funkcje
i gdy używam takiego wywołania
wyskakuje mi taki błąd. Dlaczego tak się dzieje ? Bo gdy wpiszę na sztywno w zapytaniu to działa. Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''dish'' at line 1' in model.php on line 59 Ten post edytował brzoza91 20.07.2012, 20:45:09 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 821 Pomógł: 111 Dołączył: 11.09.2006 Skąd: Biała Podlaska Ostrzeżenie: (0%) ![]() ![]() |
Dodaje Ci ' ' zapewne podczas bindValue.
BTW, dlaczego nie używasz fetchAll()? -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 4 Dołączył: 9.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
BTW, dlaczego nie używasz fetchAll()? teraz już używam ![]() próbowałem tak, ale dalej taki sam błąd |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 821 Pomógł: 111 Dołączył: 11.09.2006 Skąd: Biała Podlaska Ostrzeżenie: (0%) ![]() ![]() |
Kolego zauważ, że PDO przy bindowaniu zamienia ciąg znaków :test na zmienną. Tylko zmienną osadza jeszcze w ' ' czyli co?
Przykład: Kod SELECT * FROM tabela WHERE name = :name zamieni na: Kod SELECT * FROM tabela WHERE name = 'zmienna' zauważ, że do stringa i tak nie dajesz '' jako wartość SQL, ponieważ PDO sam to uczyni. Czyli to Twój przykład: Kod SELECT * FROM :tabela zamieni na: Kod SELECT * FROM 'tabela' A domyślam się, że phpmyadmin też Ci identyczny błąd w tym przypadku wywali. -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 4 Dołączył: 9.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
kurcze, to już nie wiem jak to rozwiązać
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie można bindować nazw tabel.
-------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
kurcze, to już nie wiem jak to rozwiązać Użyj tradycyjnego sposobu i wlej nazwę tabeli do zapytania zwykłą zmienną. I tak funkcja jest pewnie wykonywana tylko przez skrypty, wątpię, żeby jej argument był wysyłany z formularza, a nawet gdyby to po prostu proste wyrażenie regularne na początku dla bezpieczeństwa. Druga sprawa kopiujesz funkcjonalność metody PDO, która istnieje tj PDOStatement::fetchAll (ktoś wie jaką dać nazwę aby tag "manual" prawidłowo zalinkował?) Ten post edytował markonix 22.07.2012, 13:24:36 -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 7.07.2025 - 01:47 |