Hoi,

Ik heb een totale site gebrouwd met mysql coderingen, nu wilde ik kijken of ik het ook verbouwd kreeg naar mysqli , verschillende tuts gevolgd maar telkens krijg ik een error mischien ziet iemand een fout graag dan mededelen


PHP Fatal error: Call to a member function query() on a non-object in

$result = $mysqli->query("SELECT veld FROM users_profile WHERE user_id=" . $data['id'] . "");
$row = $result->fetch_assoc();
Ben je toevallig vergeten het MySQLi object aan te maken?

<?php
$mysqli= new MySQLi('host', 'username', 'password', 'database');
?>
Wat dacht je er van om php.net eens te raadplegen?

$mysqli is geen object, het lijkt mij dan ook dat je in een voorgaande stap iets vergeet dan wel fout doet.

Je post nu alleen maar de regel waarop het fout loopt, maar dat is niet wat er verstaan wordt onder "post relevante code"
uiteraard heb ik dit in mijn config staan

[size=xsmall]Toevoeging op 14/08/2011 14:34:18:[/size]

De reactie van Noppes Homeland slaat natuurlijk nergens op zo kan ik ook aan mijn postings komen.


Iemand anders wel een serieus andwoord ?
Post dan eens meer relevante code, want je doet toch echt iets fout!!

Dus je moet niet klagen dat je terugverwezen wordt naar: http://www.php.net/mysqli

Blijkbaar ontbreekt er ook nog eens fatsoenlijke foutafhandeling.......
foutafhandeling ontbreekt 100% niet.

In mijn config staat het volgende.

(config)
$mysqli = new mysqli('host', 'user', 'password', 'database');
if(mysqli_connect_errno())
{
trigger_error('Fout bij verbinding: '.$mysqli->error);
}

(script)
$result = $mysqli->query("SELECT veld FROM users_profile WHERE user_id=" . $data['id'] . "");
$row = $result->fetch_assoc();

{error)
PHP Fatal error: Call to a member function query() on a non-object in
Waar en hoe wordt je config bestand geladen?
Alles loopt via de index , in de index worden de scripts aangeroepen via ?p={scriptnaam}

In de index gebruik ik de volgende codering om de config te laten laden.
<?
if ( !@include('_config.php') )
{
die('Fatal Error: Please contact admin if you keep getting this error.');
}
if ( defined('ON_INDEX') )
{
redirect('./');
}
define('ON_INDEX', __FILE__);
?>

en dan in de desbetreffende scripts gebruik ik om de link te leggen via index

<?
if ( !defined('ON_INDEX') )
{
header('Location:./');exit;
}
define('ON_PAGE', __FILE__);
if ( !USER_SESSION )
{
redirect('./');
}
?>

Wel als je kiest voor object georienteerd dan is het wel zo handig alles op die wijze te doen.

En if(mysql_connect_errno()) geeft geen true/false terug dus kan je dat ook niet op deze manier uitschrijven

En laten we het er maar op houden dat het nog steeds geen correcte foutafhandeling is.

<?php
$sql = 
"SELECT veld 
FROM    users_profile 
WHERE user_id=" . $data['id'] . ""; // hier gaat ook wat fout

$result = $mysqli->query($sql); // waar is hier dan de foutafhandeling
// je fiets fvrolijk verder met
$row = $result->fetch_assoc();
?>


En je hebt nog steeds niet aangetoond dat je config op een of andere Post wijze geinclude hebt.

Not maar een keer dan verwijzen naar de handleiding van mysqli
http://www.php.net/mysqli

Ik denk dat het bij de connect fout gaat. Het moet zijn:

if ($mysqli->connect_errno) {...


Je gebruikt dus object en procedural door elkaar.
Noppes Homeland op 14/08/2011 16:45:36

Wel als je kiest voor object georienteerd dan is het wel zo handig alles op die wijze te doen.

En if(mysql_connect_errno()) geeft geen true/false terug dus kan je dat ook niet op deze manier uitschrijven

En laten we het er maar op houden dat het nog steeds geen correcte foutafhandeling is.

<?php
$sql = 
"SELECT veld 
FROM    users_profile 
WHERE user_id=" . $data['id'] . ""; // hier gaat ook wat fout

$result = $mysqli->query($sql); // waar is hier dan de foutafhandeling
// je fiets fvrolijk verder met
$row = $result->fetch_assoc();
?>


En je hebt nog steeds niet aangetoond dat je config op een of andere Post wijze geinclude hebt.

Not maar een keer dan verwijzen naar de handleiding van mysqli
http://www.php.net/mysqli




Volgends mij moet je beter mijn bovenstaande reactie lezen er staat toch duidelijk hoe en wat ik alles laat lopen ook de config ;)

Reageren