Ik zit met het volgende, ik wil een soort van engine maken voor een website geschreven in php. Hiervoor ben ik momenteel bezig met het mysql database gedeelte op te zetten met een soort van template opzet. Ik wil dus gewoon dat de database gemakkelijk in te stellen is en dat de site weet hoe de database eruit ziet aan de hand van een aantal template bestanden.
Tot zover een beetje de achtergrond van het project, het probleem is het volgende. Ik ben een aantal mysql wrapper functies aan het maken die moeten checken of de data die ik meegeef ook werkelijk in die database.tabel kan en mag.
Maar daar loop ik ergens tegen een probleem dat wat onduidelijkheid geeft in de foutmelding en op bronnen op het net.
Ik ben gewoon om in andere talen de argumenten in een functie te declareren met de types van de variabelen. Maar normaal gezien doe ik dit niet in php en het lijkt volgens de documentatie op php.net niet de gewoonte, maar andere bronnen laten toch blijken dat het mogelijk is. Aangezien dat duidelijker is kwa code zou ik graag de functies als volgt schrijven.
Dus het lijkt erop dat php geen probleem heeft met de syntax in de functie declaratie.
Ik heb hier laatst ook al eens achter gezocht toen ik de foutmelding kreeg met een 'pass by reference' probleem in een php-lib en toen was de oplossing een typecast dus php moet met variable types om kunnen.
Met een ander type van variabele gaat het trouwens ook niet, als ik zeg 'int' of 'integer' geeft hij een gelijkaardige fout.
Nog wat verdere informatie:
php: 5.2.6
apache: 2.2.8
os: xp sp3 (maar moet ook runnen op een apple (leopard) en een linux bak(fc6 of fc8) met dezelfde versies van php en apache)
Ik gebruik dreamweaver CS3 om te coden maar dat heeft er weinig mee te maken
en de functie waar het over gaat zit in een klasse 'mysql' en wordt opgeroepen met de functie:
Zo, dat is denk ik wel genoeg informatie. Ik zou niet onmiddelijk weten wat nog relevant is ... dus als iemand een idee heeft of het zelfs mogelijk is en hoe dat dan juist moet. php.net geeft nergens of en hoe een type declaratie kan of moet. Er zijn wel wat andere site's die het doen op dezelfde manier als ik probeer maar hoe dat dan lukt is me een raadsel. Misschien is het iets van een oude php versie of moet het ingesteld worden in de php.ini, ik zou het graag weten.
Tot zover een beetje de achtergrond van het project, het probleem is het volgende. Ik ben een aantal mysql wrapper functies aan het maken die moeten checken of de data die ik meegeef ook werkelijk in die database.tabel kan en mag.
Maar daar loop ik ergens tegen een probleem dat wat onduidelijkheid geeft in de foutmelding en op bronnen op het net.
Ik ben gewoon om in andere talen de argumenten in een functie te declareren met de types van de variabelen. Maar normaal gezien doe ik dit niet in php en het lijkt volgens de documentatie op php.net niet de gewoonte, maar andere bronnen laten toch blijken dat het mogelijk is. Aangezien dat duidelijker is kwa code zou ik graag de functies als volgt schrijven.
PHP:
Alleen lijkt dit niet te lukken, ik krijg daarbij een foutmelding:1
| function mysql_query_db(string $database, string $table, string $query, array $values) |
code:
Dus dat hij een string verwacht en in de plaats een string krijgt 1
| Catchable fatal error: Argument 1 passed to mysql::mysql_query_db() must be an instance of string, string given, called in ... |

Ik heb hier laatst ook al eens achter gezocht toen ik de foutmelding kreeg met een 'pass by reference' probleem in een php-lib en toen was de oplossing een typecast dus php moet met variable types om kunnen.
Met een ander type van variabele gaat het trouwens ook niet, als ik zeg 'int' of 'integer' geeft hij een gelijkaardige fout.
Nog wat verdere informatie:
php: 5.2.6
apache: 2.2.8
os: xp sp3 (maar moet ook runnen op een apple (leopard) en een linux bak(fc6 of fc8) met dezelfde versies van php en apache)
Ik gebruik dreamweaver CS3 om te coden maar dat heeft er weinig mee te maken
en de functie waar het over gaat zit in een klasse 'mysql' en wordt opgeroepen met de functie:
PHP:
Wat ik ook al heb getest is om de declaratie van de variabelen buiten de functie te doen, maar dat lijkt hij helemaal niet graag te hebben.1
| $mysql->mysql_query_db("dev_db", "data_incoming", "select", $values); |
PHP:
Is er misschien ergens een extra instelling in php.ini dat ik moet zetten hiervoor of een optie dat ik moet meegeven in de ./configure1
| string $database = "dev_db"; |
Zo, dat is denk ik wel genoeg informatie. Ik zou niet onmiddelijk weten wat nog relevant is ... dus als iemand een idee heeft of het zelfs mogelijk is en hoe dat dan juist moet. php.net geeft nergens of en hoe een type declaratie kan of moet. Er zijn wel wat andere site's die het doen op dezelfde manier als ik probeer maar hoe dat dan lukt is me een raadsel. Misschien is het iets van een oude php versie of moet het ingesteld worden in de php.ini, ik zou het graag weten.