Autor | Zpráva | ||
---|---|---|---|
Manny Profil |
#1 · Zasláno: 24. 1. 2014, 16:04:24
Po aktualizaci mi začala vyskakovat hláška:
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /data/web/virtuals/47926/virtual/www/index.php on line 19 Zjistil jsem neprovedený dotaz do db. Nechápu ale proč. Tuto konstrukci jsem nemněnil a do této doby fungovala. Navíc ostatní dotazy do db na webu fungují, i když používají stejný postup. |
||
Rfilip Profil |
#2 · Zasláno: 24. 1. 2014, 16:05:26
A dotaz do db vypadá jak?
|
||
Joker Profil |
#3 · Zasláno: 24. 1. 2014, 17:02:12
Manny:
Viz Nejčastější potíže s PHP (FAQ). Ten warning by v první řadě vůbec neměl nastat, pro SELECT dotaz může mysqli_query vrátit resource nebo false (hádám, že tady je příčina problému), takže skript by měl nějak reagovat na situaci, kdy vrátí false. Jinak stejný SQL dotaz provedený přímo nad databází (třeba v phpMyAdminu) funguje? |
||
Lkopo Profil * |
#4 · Zasláno: 24. 1. 2014, 20:22:39
100% je chyba v predchádzajúcom SQL dotaze, resp. dotaz, z kt. sa snažíte získať počet riadkov, lenže ten dotaz hodil nejaký error, ktorý ste si nedali nikde vypísať. Keď nechcete ho vypísať na stránku, tak do nejakého súboru, napr. mysql-errors.log
|
||
Manny Profil |
#5 · Zasláno: 24. 1. 2014, 20:53:42 · Upravil/a: Manny
do db jde úplně obyčejný select
$sql_dotaz = "SELECT id, parametr, title, keyword, description, content, type, gallery, autotitle, pull_down_intersec FROM obsah WHERE parametr = '".$str."'"; $db_dotaz = mysqli_query($spojeni,$sql_dotaz); $str jsem ověřil.
Na localu funguje, na ostrém serveru nikoliv. Záhada vyřešena! Jsem úplnej d***:-) Přidával jsem do tabulky nový sloupec. Takže dotaz byl i na sloupec, který neexistoval. Omlouvám se za ztracený čas. |
||
Joker Profil |
#6 · Zasláno: 24. 1. 2014, 22:18:14
Manny:
„Přidával jsem do tabulky nový sloupec. Takže dotaz byl i na sloupec, který neexistoval.“ Přesně něco takového jsem čekal. Právě proto se vždycky vyplatí si zjistit složený SQL dotaz a jakkoliv na pohled vypadá, že to prostě musí fungovat, zkusit ho přímo nad danou databází*. Prakticky vždycky se pak ukáže, že byla přece jen chyba v SQL dotazu. * Pro SELECT dotaz v jednoduchých podmínkách to stačí, při nějakém vyšším standardu programování se pochopitelně podívat do logu a experimenty dělat nad kopií ostré databáze. |
||
Časová prodleva: 10 let
|
0