MySql problem
5 naročnikov
5 naročnikov
Joomla mi pri modulu latest news in pri enem izmed menijev javlja spodnjo napako, ki jo ponovi pri vsaki vrstici, ki bi jo moral izpisati iz baze:
Warning: mysqlquery(): supplied argument is not a valid MySQL-Link resource in /publichtml/includes/database.php on line 289
Warning: mysql_errno(): supplied argument is not a valid MySQL-Link resource in /includes/database.php on line 291
Warning: mysqlerror(): supplied argument is not a valid MySQL-Link resource in /publichtml/includes/database.php on line 292
Ta fajl želi v teh vrsticah imeti od baze tole:
#287 $this->errorNum = 0;
$this->errorMsg = '';
$this->cursor = mysqlquery( $this->sql, $this->resource );
if (!$this->cursor) {
$this->errorNum = mysqlerrno( $this->resource );
$this->errorMsg = mysqlerror( $this->resource )." SQL=$this->sql";
if ($this->debug) {
triggererror( mysqlerror( $this->resource ), EUSERNOTICE );
//echo "<pre>" . $this->sql . "</pre>\n";
if (functionexists( 'debugbacktrace' )) {
foreach( debugbacktrace() as $back) {
if (@$back['file']) {
echo '
'.$back['file'].':'.$back['line'];
Zakaj se to pojavlja in zakaj se pojavlja samo včasih in ne vedno? JE to problem skripte, je to problem serverja ali kaj?
Hvala
11 odgovorov
poizkusi z non-persistant connectioni v mysql bazo.
Ker če dobro pogledaš vidiš:
$this->cursor = mysqlquery( $this->sql, $this->resource );
if (!$this->cursor) {
$this->errorNum = mysqlerrno( $this->resource );
this->cursor bi moral returnati true, če bi se mysqlquery() izvedel. Tako ga pa strežnik sploh ni izvedel... oz. ni mogel izvesti zaradi preveč povezav v mysql bazo.
bl4ckb1rd, v bistvu nimas prav, v $this->cursor je result resource, ce je query valid, ce pride do napake v queryju, pa je vrnjena vrednost res tipa boolean, ampak je false. Je pa res, da se da v expressionu "if (!$this->cursor)" zadeva casta v boolean, kot je to opisano tukaj.
Preseren, problem je, da imas v $this->sql neveljaven query, zakaj pa je neveljaven, pa iz tega, kar si napisal, ni mogoce vedeti. Poskusi vkljuciti debug mode, kar se ocitno da, ce v $this->debug zapises true, pa ti bo zadeva izpisala konkretno mysql napako, ce se odkomentiras tisti "echo <pre>...", bos pa videl se cel sporni query.
Samo dvomim da je sintaksa SQL querya napačna... problem tule je bolj ali se je izvedel pravilno ali ne... Če se mu izvede ponavadi brez napak včasih pa z napakami, pa glede na to da je to news modul predvidevam da nič ne podajaš spremenljivk v query ampak je več ali manj statično... Bolj mi smrdi na strežnik... lahko pa da se motim seveda. Preveri tudi query kot je Vini dejal.
Sej ravno to se mi zdi problem, ker je enkrat napaka, enkrat pa dela normalno..
@Vini, bom naredil, malo pregledam, kaj pride v rezultatih ven,pa bomo vidli, samo morem to danes ponoči naredit, ko ne bo preveč userjev gor.....
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource
plain simple: connect na bazo ni pravi
saj lepo da veliko veste, ampak zakaj ne bi enostavno vprasali stricka G?
site:forum.joomla.org mysqlerror(): supplied argument is not a valid MySQL-Link resource in /publichtml/includes/database.php on line 292
http://forum.joomla.org/viewtopic.php?t=131013
http://forum.joomla.org/viewtopic.php?t=144393
Perun, ni povsem nujno, da je to res to, kar navajas, napaka se namrec dogaja v database wrapperju, pa bi lahko bilo karkoli, saj se (upam vsaj) vsa dostopanja do baze dogajajo preko njega. Vsekakor pa dobra najdba, na brzino za preverit, ce je to res to mogoce, bo Preseren povedal :)
hrmm, Perunin g. google sta rešila stvar, problem je bil v joomla cache, ki sem ga vem vklopljenega.
Bomo pač morali delat brez njega....
Hvala vsem, ki ste se potrudili...