Versio

mysqli couldnt fetch?

Overzicht Reageren

Chi Lion

Chi Lion

30/07/2011 11:00:22
Quote Anchor link
Hoi,

database.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
function database_connect(&$link)
{

    $link = mysqli_connect('localhost', 'chilion_***', '****', 'chilion_***') or die ('Problemen tijdens de connectie met de database<br />');
}


?>


index.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
include_once('inc/database.php');
database_connect($link);

$adverts_row_1 = mysqli_fetch_assoc(mysqli_query($link, 'SELECT content FROM settings WHERE title = "advert_row_1"'));

?>


Foutmelding:
Quote:

Warning: mysqli_query() [function.mysqli-query]: Couldn't fetch mysqli in /home/chilion/domains/chilion.nl/public_html/hak/index.php on line 134

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null given in /home/chilion/domains/chilion.nl/public_html/hak/index.php on line 134


Wat goes rong?

Toevoeging op 30/07/2011 11:01:29:

Overigens, enkel relevante code, line 134 in de foutmelding is in dit voorbeeld line 5.
 
PHP hulp

PHP hulp

25/05/2012 07:03:32
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Cake Masher

Cake Masher

30/07/2011 11:05:50
Quote Anchor link
Je kijkt niet of de query succesvol is. Je zou hiervoor error afhandeling moeten gebruiken om tekijken of de query gelukt is. En zo niet, waarom niet.

Dus i.p.v.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
include_once('inc/database.php');
database_connect($link);

$adverts_row_1 = mysqli_fetch_assoc(mysqli_query($link, 'SELECT content FROM settings WHERE title = "advert_row_1"'));

?>


zo iets:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
    include_once('inc/database.php');
    
    database_connect($link);

    $query = mysqli_query ($link, 'SELECT content FROM settings WHERE title = "advert_row_1"');
    
    if ($query)
        $adverts_row_1 = mysqli_fetch_assoc ($query);
    else
        echo "Query is fout gegaan met error code " . mysqli_error ($link);

?>



Edit:
Ik zag even te kijken naar $link, maar waar haal je die eigelijk vandaan? Want je maakt verbinding in de functie database_connect, en geeft de verbinding de variable $link maar returned niks.
Dus maak van je functie:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
function database_connect ()
{

    return mysqli_connect('localhost', 'chilion_***', '****', 'chilion_***') or die ('Problemen tijdens de connectie met de database<br />');
}


?>


en op de plek waar je database_connect aan roept:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$link = database_connect();


verbeter me als ik 't fout heb..
Gewijzigd op 30/07/2011 11:09:20 door Cake Masher
 
Noppes Homeland

Noppes Homeland

30/07/2011 11:07:56
Quote Anchor link
Les 1: je moet mysql(i) functies niet nesten, fatsoenlijke foutafhandeling is dan onmogelijk!

Dus gaat eens fatsoenlijke foutafhandeling inbouwen en je weet dan wat je fout doet!

Les 2: variabelen die binnen een fucntie gedeclareerd worden zijn alleen binnen die functie beschikbaar!

Les 3: strings in een sql statement dienen gequote te worden met enkele quotes, waardoor je gedwongen wordt het SQL statement zelf te quoten met ""

Les 4: geef variabelen een correcte zinnige naam! Genummerde variabelen zouden niet mogen voorkomen!!
 



Overzicht Reageren