Ik ben bezig om een website te maken voor multi device gebruik.
Dit is een website in PHP gehost op IIS7.
De data wordt uit een MS SQL database gehaald.
Nu is de website op mijn laptop en tablet goed te zien.
Ook gaat het op een android toestel prima.
Maar op mijn Windows Phone 8 werkt het niet.
Dan krijg ik deze fout:
Warning: sqlsrv_fetch_object() expects parameter 1 to be resource, boolean given in
Blijkbaar gaat Windows PHone 8 er anders mee om dan android of een tablet/laptop.
Heeft er iemand een idee?
Ik kan me niet indenken dat het met de WIndows Phone te maken heeft, gezien PHP op de server draait.
het klinkt als missende foutafhandeling. Kan je misschien wat relevante code tonen?
"Ik kan me niet indenken dat het met de WIndows Phone te maken heeft, gezien PHP op de server draait."
Niet direct in elk geval. De user agent, en mogelijk andere informatie, van de Windows Phone zal anders zijn. Ik kan me zomaar voorstellen dat deze in de database op wordt geslagen. Ik kan me ook voorstellen dat de query die daarvoor gebruikt wordt gevoelig is voor SQL injectie.
Als je wilt dat we je hebben hebben we méér code nodig. Vooral de code vóór de fout.
$query = "SELECT TOP (1) Categorie FROM zaken WHERE ZaakGebruiker = '".$username."' ORDER BY id DESC";
$qryU = sqlsrv_query($db, $query);
$echU = sqlsrv_fetch_object($qryU);
$lastCat = $echU->Categorie;
$qryU = sqlsrv_query($db, "SELECT Email, GebruikersNaam, Naam, Telefoon, KantoorId, TelefoonMobiel FROM gebruikers WHERE GebruikersNaam = '".$username."'");
$echU = sqlsrv_fetch_object($qryU);
Even een stukje van php.net over de functie sqlsrv_fetch_object()
Return Values
Returns an object on success, NULL if there are no more rows to return, and FALSE if an error occurs or if the specified class does not exist.
Ik zie deze functie vier keer in je code staan en vier keer zonder fout-afhandeling.
Voorbeeldje:
<?php
$echU = sqlsrv_fetch_object($qryU);
if($echU === FALSE)
echo 'er is iets fout gegaan bij regel X.';
?>
@Frank, wat betreft de foutafhandeling, dat klopt inderdaad. Deze moet er nog in komen.
Was eigenlijk nog te veel bezig met de design. En ja, dat soort dingen hoor je gelijk te doen. Ik weet het.
Iemand nog een idee? Ik zal nog eens wat andere telefoons proberen van collega's. Even kijken of het nog meer voorkomt.
[size=xsmall]Toevoeging op 26/05/2014 14:15:51:[/size]
Als ik de query echo, dan is de gebruikersnaam netjes ingevuld.
Dat is het vreemde ervan. Dat had ik gelijk al gecheckt.