Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\xampp
ik heb hier een curieus probleempje dat zich soms wel, soms niet voordoet wanneer ik een myslq query laat uitvoeren.
De foutboodschap duidt op het feit dat er geen parameter bij de query werd doorgegeven. Dit is echter niet het geval. In het merendeel van de gevallen wordt de query wel correct uitgevoerd. Het is echt niet te snappen
Het stukje code waarover het gaat is :
$query="SELECT customer_number, customer_name FROM tbl_customer WHERE customer_name='$search'";
writelog("query string = ",$query,"");
$results=mysql_query($query,$conn_disputes) or die("Couldn't execute query: " . mysqli_error());
Ik heb de waarden naar een logfile geschreven :
Thu Mar 20, 2008 14:36 pm : customer name before rework = SEA-INVEST SHIPPING AGENCY (SISA) - 51023029
Thu Mar 20, 2008 14:36 pm : customer name after rework = SEA-INVEST SHIPPING AGENCY (SISA)
Thu Mar 20, 2008 14:36 pm : customer number = 51023029
Thu Mar 20, 2008 14:36 pm : search name = SEA-INVEST SHIPPING AGENCY (SISA)
Thu Mar 20, 2008 14:36 pm : query string = SELECT customer_number, customer_name FROM tbl_customer WHERE customer_name='SEA-INVEST SHIPPING AGENCY (SISA)'
De customer_name bestaat wel degelijk. Indien de query voor een tweede maal wordt uitgevoerd, wordt deze perfect gedaan.
Het probleem doet zich dus eigenlijk random voor en ik heb totaal geen idee waarom dit voorkomt.
Heeft er iemand een idee hoe dit kan opgelost worden?.
Groetjes
je gebruikt mysqli_error en mysql_query? je moet een van de 2 gebruiken. dus mysql_query en mysql_error of mysqli_query en mysqli_error
Edit: Inderdaad, let wel op de i van improved. Wil je deze gebruiken ja of nee?
Gewijzigd op 01/01/1970 01:00:00 door Frank -
$query="SELECT customer_number, customer_name FROM tbl_customer WHERE customer_name='$search'";
op de lijnen die aan de $query string voorafgaan is de inhoud van $search wel degelijk gevuld met info die in de tbl_customer terug te vinden is..
Indien het zou kunnen te wijten zijn aan geheugen dat volloopt of zo, is er dan een elegante manier om de buffers te clearen (anders dan de server te rebooten??)
Als dat het geval is, verander dan die mysqli_error() eens in gewoon mysql_error(). Je gebruikt immers ook mysql_query(), dus dan is het niet logisch om die andere variant te gebruiken voor je foutmelding.
Wanneer ik de msql_error opnieuw gebruik, krijg ik gewoon de foutboodschap can't execute query. De mysqli_error routine gaf me een beetje meer houvast wat er eigenlijk gaande is. Rariteit is dat, wanneer ik dezelfde programma's op mijn pc thuis uitvoer, ik geen foutboodschap krijg. Ik begin dus meer en meer te denken dat ergens iets het geheugen van de server belast moet hebben, waardoor deze sporadisch de trappers verliest.
De functie mysql_error() geeft jou informatie over wat er nu precies fout gaat in je query. Dat een andere functie een andere error geeft waar jij meer houvast aan denkt te hebben, heeft daar helemaal niets mee te maken.
Kortom, ga nou eens kijken naar de oorspronkelijke foutmelding die je krijgt en echo bijvoorbeeld ook de query eens die je gebruikt...
Ik heb mijn query string naar een logbestand geschreven en daarin staat exact wat ik in de tabel op wil zoeken. Het is dit dat ik niet meer versta. De string en de variabele is goed. Indien ik deze rechtstreeks invoer in mysql krijg ik het gewenste resultaat. Mijn php routine echter geeft een indicatie alsof de te zoeken string leeg zou zijn (wat niet het geval is) en geeft dan die bewuste 'can't execute query' op het scherm van de gebruiker.