Problemen met iDealmodule: Warning: mysql_num_rows() expects parameter 1 to be resource, boolean giv
Mijn vrouw heeft een goed lopende webshop, maar er gebeurde de afgelopen tijd een paar vreemde dingen op de website. Nadat op onverklaarbare wijze een map met bestanden voor idealcheckout waren verdwenen, kreeg ik nadat ik deze map vanuit een backup weer terug had gezet, in ene de volgende foutmelding bij het afrekenen te zien:
Quote:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/baby/public_html/idealcheckout/includes/library.php on line 985
ERROR: Invalid request.
FILE: /home/baby/public_html/idealcheckout/includes/init.php
LINE: 68
ERROR: Invalid request.
FILE: /home/baby/public_html/idealcheckout/includes/init.php
LINE: 68
Ik heb gekeken in het document library.php en daar kom ik op regel 985 de volgende code tegen:
Quote:
return mysql_num_rows($oRecordSet);
In het document init.php staat op regel 68 het volgende:
Quote:
idealcheckout_die('ERROR: Invalid request.', __FILE__, __LINE__, false);
Dat laatste is voor de foutmelding en kan ik snappen. Ik kan er alleen niet bij waarom er nu in ene een fout zou zijn het idealgebeuren en ik deze melding krijg... Tot en met gisteren 16:14 uur was er geen vuiltje aan de lucht...
Ik hoop dat iemand hier mij verder kan helpen, ik kom er niet uit op het moment...
Alvast bedankt!
Hartelijke groet,
Marco Boer
De foutmelding geeft heel simpel aan dat er een query mislukt is, en er niet gecontroleerd wordt op het wel of niet lukken van die query. Mogelijk doet de query gekke dingen, maar het kan ook een beschadigde tabel zijn.
Ben van Velzen op 04/02/2017 14:13:40:
De foutmelding geeft heel simpel aan dat er een query mislukt is, en er niet gecontroleerd wordt op het wel of niet lukken van die query. Mogelijk doet de query gekke dingen, maar het kan ook een beschadigde tabel zijn.
Wauw, het repareren van de tabellen in de database heeft het probleem opgelost...\
Daar had ik nog niet eerder aan gedacht! Thnx!!!
Hartelijke groet,
Marco Boer
Dan is de volgende stap dat je ontdekt *waarom* tabellen beschadigd raken. Zelfs MySQL doet dit niet helemaal vanzelf. Of misschien is fatsoenlijke queryafhandeling nog beter, waardoor je gewoon een duidelijke (gelogde) melding had gehad wat er aan de hand was. Take your pick, het liefst beide.
Ik zou ook z.s.m. gaan zoeken naar een update van die checkout, want als die nog steeds mysql_-functies gebruikt (zoals de foutmelding doet vermoeden) en je host onverhoopt besluit de PHP versie te bumpen dan ben je gezien.
Dat zou ik ook doen, maar er is waarschijnlijk nog meer mis. Immers, bestanden verdwijnen niet uit zichzelf, een onderzoekje hiernaar is ook nuttig. De kans is groot dat er sprake is van foul play.
Ook in de updates van de module voor onze versie va Prestashop komt een probleem voor, namelijk:
Quote:
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /home/baby/public_html/idealcheckout/includes/library.php on line 1697
De volgende code staat op deze regel:
Quote:
return mysqli_num_rows($oRecordSet);
Het volledige stukje code is:
Quote:
function idealcheckout_database_num_rows($oRecordSet)
{
global $aIdealCheckout;
if(!empty($aIdealCheckout['database']['type']) && (strcmp($aIdealCheckout['database']['type'], 'mysqli') === 0))
{
return mysqli_num_rows($oRecordSet);
}
else
{
return mysql_num_rows($oRecordSet);
}
}
{
global $aIdealCheckout;
if(!empty($aIdealCheckout['database']['type']) && (strcmp($aIdealCheckout['database']['type'], 'mysqli') === 0))
{
return mysqli_num_rows($oRecordSet);
}
else
{
return mysql_num_rows($oRecordSet);
}
}
Nu heeft de webhoster de module zelfs als gehacked aangemerkt en kan ik de module niet meer gebruiken. Het is de bedoeling op korte termijn de shop te gaan updaten, maar dat gaat niet van vandaag op morgen...
Wat kan ik het beste doen? Is de code van die module 'om' te schrijven? Of is dat machtig veel werk?
Hoor het graag!
Hartelijke groet,
Marco
Gewijzigd op 06/04/2017 18:32:03 door Marco Boer