Hallo beste tweakers,
ik ben al een tijdje bezig met dit probleem, en ik kom er maar niet uit. Hopelijk biedt 1 van jullie de oplossing
Ik was wat bezig om te proberen een class te bouwen. Allemaal leuk en aardig, maar als ik een database class maak, dan worden de results van een query niet goed gereturned en ik weet niet waarom.
Nu ben ik er achter, dat hetzelfde probleem zich ook voordoet als ik de query via een functie laat lopen, dus laat ik deze zien, omdat die wat makkelijker te overzien zijn
Even als voorbeeld, dit werkt perfect:
Maar nu wil ik de query via een functie doen, dit doe ik als volgt:
Het lijkt erop dat ik niet de variabele met de Resource id terugkrijg, maar een boolean met die aangeeft dat de query mislukt is.
In de PHP manual staat dit:
Binnen de functie de string $result printen resulteert ook in een 1, dus daar gaat het al fout
Ikzelf heb de hoop al bijna opgegeven. Waarschijnlijk zal ik wel weer iets ongelooflijk doms over het hoofd zien waarom dit gebeurd
Maar op dit moment maakt me dat niets uit, ik wil gewoon verder!
Bij voorbaat dank
ik ben al een tijdje bezig met dit probleem, en ik kom er maar niet uit. Hopelijk biedt 1 van jullie de oplossing
Ik was wat bezig om te proberen een class te bouwen. Allemaal leuk en aardig, maar als ik een database class maak, dan worden de results van een query niet goed gereturned en ik weet niet waarom.
Nu ben ik er achter, dat hetzelfde probleem zich ook voordoet als ik de query via een functie laat lopen, dus laat ik deze zien, omdat die wat makkelijker te overzien zijn
Even als voorbeeld, dit werkt perfect:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
| //hieruit vloeit uiteindelijk de variabele $db_connect die in een mysql_query functie nodig is en werkt (weet ik 100% zeker) include('includes/mysql.php'); $query = 'SELECT * FROM tabel WHERE waarde=\'iets\';'; $result = mysql_query($query, $db_connect) || die ('Er ging iets fout:<BR>'. mysql_error()); print_r($result); /* Dit levert als output: Resource id #8 Dit is wat ik verwacht en hier kan ik verder mee werken */ |
Maar nu wil ik de query via een functie doen, dit doe ik als volgt:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| function query($query) { //De include binnen de functie zodat $db_connect in de functie beschikbaar is include('includes/mysql.php'); $result = mysql_query($query, $db_connect)|| die ('Er ging iets fout:<BR>'. mysql_error()); return $result; } $query = 'SELECT * FROM tabel WHERE waarde=\'iets\';'; $result = query($query); print_r($result); /* Dit levert als output: 1 (één) Niet echt zoals verwacht, waarom niet? */ |
Het lijkt erop dat ik niet de variabele met de Resource id terugkrijg, maar een boolean met die aangeeft dat de query mislukt is.
In de PHP manual staat dit:
Met andere woorden, bij een select moet $result bij mij gewoon de resource id krijgen, maar dat krijgt deze niet.Alleen voor SELECT, SHOW, EXPLAIN en DESCRIBE queries geeft mysql_query() een resource identifier terug of FALSE als de query niet correct werd uitgevoerd. Voor andere soorten SQL queries geeft mysql_query() TRUE terug bij succes en FALSE bij een fout.
Binnen de functie de string $result printen resulteert ook in een 1, dus daar gaat het al fout
Ikzelf heb de hoop al bijna opgegeven. Waarschijnlijk zal ik wel weer iets ongelooflijk doms over het hoofd zien waarom dit gebeurd
Maar op dit moment maakt me dat niets uit, ik wil gewoon verder!
Bij voorbaat dank
What do you mean I have no life? I am a gamer, I got millions!