omzetten naar mysqli geeft foutmeldingen
Ik probeer een reeds lang draaiend scriptje aan te passen aan de het nieuwe mysqli maar krijg de ene fout na de andere.
Ik dacht dat ik het voor elkaar had omdat dreamweaver geen fouten meer aangaf maar......toch niet.
Ziet iemand e fout?
Meldingen:
Warning: mysqli_query() expects parameter 2 to be string, object given in C:\wamp\www\rcz\verjaardagen\verjaardag.php on line 29
en
Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\wamp\www\rcz\verjaardagen\verjaardag.php on line 31
en
Catchable fatal error: Object of class mysqli_result could not be converted to string in C:\wamp\www\rcz\verjaardagen\verjaardag.php on line 31
[script]
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
require_once 'db_config.php';
$sql = mysqli_query($db,
"SELECT
voornaam,
tussenvoegsel,
achternaam,
YEAR(CURRENT_DATE) - YEAR(geboortedatum) AS leeftijd
FROM
ledenlijst
WHERE
DAY(geboortedatum) = DAY(CURRENT_DATE)
AND
MONTH(geboortedatum) = MONTH(CURRENT_DATE)
");
if(!$res = mysqli_query($db, $sql))
{
trigger_error(mysqli_error().'<br />In query: '.$sql);
}
elseif(mysqli_num_rows($res) == 0)
{
echo 'Jammer, er zijn vandaag geen leden jarig, dus geen taart vandaag !';
}
else
{
while($row = mysqli_fetch_assoc($res))
{
echo '<b>'. $row['voornaam'].' '.$row['tussenvoegsel'].' '.$row['achternaam'].' is vandaag '.$row['leeftijd'].' geworden !!! </font><br/><br/>';
}
}
?>
require_once 'db_config.php';
$sql = mysqli_query($db,
"SELECT
voornaam,
tussenvoegsel,
achternaam,
YEAR(CURRENT_DATE) - YEAR(geboortedatum) AS leeftijd
FROM
ledenlijst
WHERE
DAY(geboortedatum) = DAY(CURRENT_DATE)
AND
MONTH(geboortedatum) = MONTH(CURRENT_DATE)
");
if(!$res = mysqli_query($db, $sql))
{
trigger_error(mysqli_error().'<br />In query: '.$sql);
}
elseif(mysqli_num_rows($res) == 0)
{
echo 'Jammer, er zijn vandaag geen leden jarig, dus geen taart vandaag !';
}
else
{
while($row = mysqli_fetch_assoc($res))
{
echo '<b>'. $row['voornaam'].' '.$row['tussenvoegsel'].' '.$row['achternaam'].' is vandaag '.$row['leeftijd'].' geworden !!! </font><br/><br/>';
}
}
?>
[/script]
regelnummers kloppen nu echter niet meer!!!
Gewijzigd op 24/06/2014 20:24:39 door Peter Arendse
Gewijzigd op 24/06/2014 19:16:48 door Erwin H
Hartelijk dank!
Klopt inderdaad, het werkt nu wel, zit ik er 2 uur naar te kijken en alles te veranderen, pffffff.
Deze topic kan met alle tevredenheid gesloten worden.
Modmelding
Zou je aub je topic titel kunnen veranderen naar een titel die je probleem omschrijft? Ik hoop dat je hoofdpijn snel over gaat, maar het probleem in dit topic gaat niet over je hoofdpijn maar over MySQL fouten.
Alvast bedankt!
Zou je aub je topic titel kunnen veranderen naar een titel die je probleem omschrijft? Ik hoop dat je hoofdpijn snel over gaat, maar het probleem in dit topic gaat niet over je hoofdpijn maar over MySQL fouten.
Alvast bedankt!
Gewoon errors vertalen en klaar ben je, want dan heb je namelijk al een complete uitleg naar de oplossing!
>> Warning: mysqli_query() expects parameter 2 to be string, object given in C:\wamp\www\rcz\verjaardagen\verjaardag.php on line 29
Vertaling: Het 2e argument van mysqli_query moet een string zijn (stukje tekst), maar je geeft een object mee.
Die regel is:
Hmm, wat zou $sql dan zijn? Dat vinden we wat regels terug
en wat geeft mysqli_query terug?
Quote:
Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.
Bingo!
>> Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\wamp\www\rcz\verjaardagen\verjaardag.php on line 31
Vertaling: mysqli_error heeft 1 parameter nodig, je geeft helemaal niks mee.
We gaan de regel weer even opzoeken:
En weer is PHP gelijk. We geven helemaal niks mee. Hmm, wat moet je meegeven dan? Even kijken op [url-http://php.net/mysqli_error]php.net[/url] maar weer:
Quote:
link
Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()
Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()
Ah! Hij wil dus de $db identifier krijgen. Opgelost!
>> Catchable fatal error: Object of class mysqli_result could not be converted to string in C:\wamp\www\rcz\verjaardagen\verjaardag.php on line 31
Vertaling: Het mysqli_result object kan niet worden omgezet tot een string
We pakken weer de regel:
Oh! We doen string + $sql. Hierbij wordt $sql dus omgezet naar een string. Hmm, wat was $sql ook alweer? Oh ja, dat lazen we bij de eerste error: Een mysqli_result object. Weer Opgelost!
Hier is dus helemaal geen hoofdpijn voor nodig. Gewoon lezen wat de error zegt, je code bekijken, analyseren en php.net raadplegen.
Peter Arendse op 24/06/2014 19:36:04:
Beste Erwin,
Hartelijk dank!
Klopt inderdaad, het werkt nu wel, zit ik er 2 uur naar te kijken en alles te veranderen, pffffff.
Deze topic kan met alle tevredenheid gesloten worden.
Hartelijk dank!
Klopt inderdaad, het werkt nu wel, zit ik er 2 uur naar te kijken en alles te veranderen, pffffff.
Deze topic kan met alle tevredenheid gesloten worden.
Ik zie geen reden om dit topic te sluiten. Als iets opgelost is zinkt deze wel langzamerhand naar de bodem. Mocht je een vervolg van je probleem hebben, dan zie ik liever dat je dit topic omhoogkickt, dan dat je een dubbel topic start waarin je refereert naar je vorige topic.
Gewijzigd op 24/06/2014 19:51:16 door - Ariën -
Alstublieft, dank u wel voor de heldere uitleg!