Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Błąd w składni IF
Forum PHP.pl > Forum > Przedszkole
yekumisiu
Witam serdecznie i proszę o pomoc fachowców od MYSQL.

Jedna z moich wordpressowych stron ma kłopot z jedną z wtyczek. Wszystko działa, ale muli jak sto nieszczęść i zapytania trwają długie sekundy. Wtyczki niestety nie mogę wyłączyć ani wymienić, pozostaje dociec, co jest nie tak. Query Monitor zlokalizował nieszczęsną wtyczkę i informuje po zapytaniu "DESCRIBE IF" iż:
  1. 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 'IF' at line 1

Wadliwy ponoć kod wygląda tak:
  1. CREATE TABLE IF NOT EXISTS `".$table_prefix."attendance_list` (
  2. `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `post` int(10) UNSIGNED NOT NULL,
  4. `user` int(10) UNSIGNED NOT NULL,
  5. `vote` int(10) UNSIGNED NOT NULL,
  6. `date` int(10) UNSIGNED NOT NULL,
  7. PRIMARY KEY (`id`),
  8. KEY `post` (`post`,`user`)
  9. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1

Mykam po html i css, na php i mysql niespecjalnie się znam. Poguglałem sporo, ale nie dociekłem.
Będę ogromnie wdzięczny, jeśli ktoś rzuciłby na to okiem i ewentualnie wskazał, co jest nie tak.
Kshyhoo
A co ma niby robić ta wtyczka? Nazwa wtyczki też tajna? Kod, który podałeś ma na celu utworzyć tabelę w bazie danych, jeżeli ta nie istnieje - a jak mniemam, to nie jest główne zadanie wtyczki...
Damonsson
Co to niby ma być?

  1. `".$table_prefix."attendance_list`


PHP Ci nie zamienia $table_prefix na to co chcesz i przesyła to jako normalny tekst do MySQL.

Pokaż zapytanie w PHP generujące to zapytanie do bazy, tam jest błąd.


edit: Chociaż tak naprawdę, powinno Ci stworzyć tabelę o dokładnie takiej nazwie: ".$table_prefix."attendance_list chyba, że jakaś wersja MySQL albo jego ustawienia blokują możliwość nadania takiej nazwy tabeli. Wtedy może sypnąć błędem.
Xart
Chodzi mu chyba o błąd podczas wgrywania tabelek do bazy...

CREATE TABLE IF NOT EXISTS `".$table_prefix."attendance_list` ( jak byk linia 1 funkcja if)
sypie błędem przez tą nazwę to jakieś łączenie zmiennych czy co ?
  1. `".$table_prefix."attendance_list`

Wywal to i zmień na normalną nazwę
yekumisiu
Panowie - dziękuję za sugestie.

1. Wtyczka nie jest tajemnicą. Stara, nierozwijana, lecz generalnie działa. Tyle że utyka we wspomnianym miejscu.

2. Nazwę tabeli zmieniałem wcześniej, zmieniłem teraz ponownie na wp_attendance_list - nic to nie daje, wywala ten sam błąd. Bawiłem się tym miejscem sporo, eksperymentowałem - zawsze wypluwało ten sam błąd, albo wywalało wszystko w... Nie wiem, czy ma to jakieś znaczenie (zapewne), ale nie ufam też serwerowi (OVH). Cała instalacja chodzi na nim masakrycznie wolno właściwie od początku, a strona nie należy do specjalnie przeładowanych. Identyczne rozwiązania gdzie indziej mykają bez problemów. Wczoraj powyłączałem niemal wszystko i uruchamiałem raz jeszcze od gołego wordpressa - na każdym etapie jak po grudzie z zapytaniami. Więc może z interpretacją zapytań coś jest nie halo?

3. Nie bardzo mam czas i ochotę zatrzymywać się nad tym, więc w międzyczasie poszukałem innego rozwiązania. Sprawdzone, zmodyfikowane, przetestowane, zdebugowane - fruwa. Oznacza to niestety dodatkową pracę i nadprogramową implementację, no ale cóż...

Myślałem, że może jakaś głupota, backtick, sprytny tip itp. rzecz uzdrowią.
Niemniej raz jeszcze bardzo dziękuję za zajrzenie tutaj.

Pozdrawiam ciepło!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.