Mysqli error
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();
$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"
Toevoeging op 14/08/2011 14:34:18:
De reactie van Noppes Homeland slaat natuurlijk nergens op zo kan ik ook aan mijn postings komen.
Iemand anders wel een serieus andwoord ?
Gewijzigd op 14/08/2011 14:30:37 door Mike de jong
Dus je moet niet klagen dat je terugverwezen wordt naar: http://www.php.net/mysqli
Blijkbaar ontbreekt er ook nog eens fatsoenlijke foutafhandeling.......
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?
In de index gebruik ik de volgende codering om de config te laten laden.
Code (php)
en dan in de desbetreffende scripts gebruik ik om de link te leggen via index
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.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?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();
?>
$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
Gewijzigd op 14/08/2011 16:46:59 door Noppes Homeland
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.
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
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.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?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();
?>
$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 ;)
moet je ook afleren
ook hier hetzelfde verhaal als bij de mysqli_connect_error
Gelieve niet meer te reageren op mijn postings dit verkracht enkelt mijn posting....
Toevoeging op 14/08/2011 16:59:59:
Eric Wagener op 14/08/2011 16:46:18:
ik behoud nog steeds de zelfde error ondanks de aanpassing.
De include is inderdaad enigszins ongebruikelijk op die manier. Als je toch die() wil/moet gebruiken, dan kun je dat beter op de plek doen waar het nodig is (in de config zelf dus).
Noppes bedoeld het waarschijnlijk goed, maar het komt altijd enorm rottig zijn strot uit. Daarom negeren de meeste mensen hem ook.
Ik zie wel niet in waarom die() nodig zou zijn. Volgens mij is een goede if-else(if) structuur in dit geval een bete oplossing. En natuurlijk, geen @include toestanden.
Wij hebben een goede if-else(if) structuur , enkelt ga ik niet mijn hele bestanden tonen dat schiet gewoon niet op.
De fout zit in de nieuwe mysqli , enkelt ziet niemand de fout blijkbaar.... want er word enkelt maar gepraat over dit niet goed dat niet goed , terwijl alles perfect werkt zonder enig memory load.
Dus graag het probleem waarom het niet werkt...
maar nogmaals: http://www.php.net/mysqli
$mysqli is in jouw geval geen geldig mysqli object
En beschuldig ons niet van het feit dat wij de fout niet zien, we kunnen alleen hetgeen beoordelen wat jij ons hier toont.
Dus gaat zelf maar lekker opzoek met wat er met $mysqli allemaal wel in niet gebeurt tussen het connecten en de foutmelding.
Check eerst eens of na het aanmaken van $mysqli het wel een object is: is_object($mysqli).
Als dat zo is, check dat dan nog eens voordat je er iets mee gaat doen.
Dus je config wordt niet ingeladen.
Makkelijker zou zijn als je de relevante code hier toont, en niet alleen een paar kleine stukjes.
Het is grappig dat je mijn code aanpast enkelt heb ik daar niet om gevraagd.
het is heel simpel , als een website werkt op mysql_query met de huidige if else etc.
zal het natuurlijk met mysqli ook moeten kunnen gaan werken , het heeft er dus geen zak mee te maken kwa if else structuur of hoe de config word ingeladen (want dat wordt hij duidelijk met bijna 1 miljoen online leden)
Het is toch niet zo moeilijk om mij ipv te verwijzen naar een dom engels forum phpnet , of enkelt maar kritiek te leveren te helpen ?
Waar is de kwaliteit gebleven van phphulp ?
de bakker zegt ook niet ik heb liever dat je het zo en zo doet als je enkelt om een brood vraagt.
En als het dan zo moeilijk is om normaal andwoord te geven en hulp te bieden mag je dat ook zeggen hoor geen enkel probleem zoek ik gewoon een ander forum waar de kwaliteit beter is..
Gewijzigd op 14/08/2011 18:34:25 door Mike de jong