omzetten naar mysqli geeft foutmeldingen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Peter Arendse

Peter Arendse

24/06/2014 19:06:49
Quote Anchor link
Beste mensen,

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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/>';
    }
}


?>

[/script]

regelnummers kloppen nu echter niet meer!!!
Gewijzigd op 24/06/2014 20:24:39 door Peter Arendse
 
PHP hulp

PHP hulp

05/11/2024 12:26:11
 
Erwin H

Erwin H

24/06/2014 19:16:15
Quote Anchor link
Dit heeft gewoon te maken met secuur werken. Op regel 5 voer je een query uit via mysqli_query. Vervolgens stop je het resultaat daarvan op regel 29 20 nog een keer in een mysqli_query. Dat kan natuurlijk nooit goed gaan.
Gewijzigd op 24/06/2014 19:16:48 door Erwin H
 
Peter Arendse

Peter Arendse

24/06/2014 19:36:04
Quote Anchor link
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.
 
Wouter J

Wouter J

24/06/2014 19:41:25
Quote Anchor link
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!


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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if(!$res = mysqli_query($db, $sql))
?>


Hmm, wat zou $sql dan zijn? Dat vinden we wat regels terug
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sql
= mysqli_query($db, ...);
?>

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
trigger_error(mysqli_error().'<br />In query: '.$sql);
?>


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()

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
trigger_error(mysqli_error().'<br />In query: '.$sql);
?>

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.
 
- Ariën  -
Beheerder

- Ariën -

24/06/2014 19:49:49
Quote Anchor link
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.

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 -
 
Peter Arendse

Peter Arendse

24/06/2014 20:25:17
Quote Anchor link
Alstublieft, dank u wel voor de heldere uitleg!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.