Toon posts:

[PHP] Define.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met een vraag, kan je iets dat met define gedefenieerd is ook gebruiken in je functions? ik kan het namelijk niet in de www.php.net/define docs vinden en b, werkt het volgens mij niet..

nu wil ik een config.phptje gebruiken om bv mijn databaes te openen, maar die db connectie staat in een 'functie' dus heb ik of globals nodig of iets dat gedefinieerd is..

Wie o wie heeft een mooi antwoord :)

  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
Constanten, welke je definieert met define, zijn volgens mij 'superglobal'. Binnen functies kan je ze sowieso gebruiken

Verwijderd

Topicstarter
Op zondag 07 juli 2002 11:28 schreef brammetje het volgende:
Constanten, welke je definieert met define, zijn volgens mij 'superglobal'. Binnen functies kan je ze sowieso gebruiken
Dat dacht ik in de eerste instantie ook maar blijkt nadat ik mijn config.include.php heb geincluded en daarna mijn db.include.php
PHP:
1
<?$database = mysql_connect(MYSQL_SERVER, MYSQL_USER, MYSQL_PASS) or die("Sorry MySQL heeft nog niet gegeten");mysql_select_db(MYSQL_DB);?>

niet werkt :(

Verwijderd

En hoe definieer je je constanten in config.include.php?

Verwijderd

Topicstarter
Op zondag 07 juli 2002 11:36 schreef Zef het volgende:
En hoe definieer je je constanten in config.include.php?
PHP:
1
<?define("MYSQL_SERVER", "");define("MYSQL_USER", "");define("MYSQL_PASS", "");define("MYSQL_DB", "");?>

"" bevat natuuurlijk normaal een waarde en heb de define naam met en zonder "" getest :)

  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
error_reporting(E_ALL) al eens aangezet?

Verwijderd

Topicstarter
Op zondag 07 juli 2002 11:37 schreef brammetje het volgende:
error_reporting(E_ALL) al eens aangezet?
jah :* en geeft geen foutjes :{
PHP:
1
<?define("MYSQL_SERVER", "webserver");define("MYSQL_USER", "user");define("MYSQL_PASS", "password");define("MYSQL_DB", "database");function oDb() {$database = mysql_connect(MYSQL_SERVER, MYSQL_USER, MYSQL_PASS) or die("Sorry er kon geen verbinding gemaakt worden met de MySQL server.");mysql_select_db(MYSQL_DB);}?>

zou toch gewoon moeten werken imho.

  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
echo ze eens in die functie

Verwijderd

Hoe weet je dat het niet werkt? Wat heeft $database voor nut :?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op zondag 07 juli 2002 12:17 schreef Zef het volgende:
Wat heeft $database voor nut :?
Dat is vele malen netter dan maar hopen dat php de goede connectie wel gebruikt :+

Zeker als je je script cross-db wilt houden en je bedenkt dat phpmodules voor db's als postgresql al niet default er van uit gaan dat de connectie die jij bedoelt de laatst geopende is :)


Btw, je doet wat anders fout.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[acm@vulcanus acm]$ php
<?
define("TEST", "bla");
function bla()
{
print TEST;
}
bla();
?>

X-Powered-By: PHP/4.2.1
Content-type: text/html

bla
[acm@vulcanus acm]$

Doet het namelijk prima.

Verwijderd

Op zondag 07 juli 2002 13:11 schreef ACM het volgende:

[..]

Dat is vele malen netter dan maar hopen dat php de goede connectie wel gebruikt :+

Zeker als je je script cross-db wilt houden en je bedenkt dat phpmodules voor db's als postgresql al niet default er van uit gaan dat de connectie die jij bedoelt de laatst geopende is :)
Dat begrijp ik ook ;) Maar hij doet vervolgens niks met die variabele en een regel verder houdt zijn scope alweer op, wederom: wat is dan het nut van $database :)

  • elnino
  • Registratie: Augustus 2001
  • Laatst online: 19-08 14:53
Op zondag 07 juli 2002 11:41 schreef xtentic het volgende:
zou toch gewoon moeten werken imho.
Wanneer wordt die functie oDB aangeroepen? Voor of na de define's?

En kloppen de waarden in de constanten wel? En heb je al een echo van de verschillende variabelen m.b.v. een echo geprobeerd?

Succes! :)

Verwijderd

Topicstarter
ik heb het niet gevonden, maar nu werkt het wel. De zelfde source die ik hier gepost heb werkt namelijk nu wel :? erg vaag mja :)
Tnx iedereen :)

Verwijderd

Ik heb dat probleem ook eens gehad. Door een instelling in apache is het soms zo dat je met mysql_connect() niet de variabele van tevoren kan defineren. Dan krijg je geen foutmeldingen, maar is er ook geen databaseconnectie

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 09:38
edit:
klote natuurlijk weer alle code op 1 line :(

PHP:
1
<?define("MYSQL_SERVER", "webserver");define("MYSQL_USER", "user");define("MYSQL_PASS", "password");define("MYSQL_DB", "database");function oDb() {  $database = mysql_connect(MYSQL_SERVER, MYSQL_USER, MYSQL_PASS) or die("Sorry er kon geen verbinding gemaakt worden met de MySQL server.");  mysql_select_db(MYSQL_DB);}?>

Als je netjes zegt $database = bla bla, dan kun je toch ook net zo goed je select regel vervangen door mysql_select_db("MYSQL_DB", $database)? Ik doe het eigenlijk altijd zo wist niet eens dat je dat weg kon laten. Dan weet je tenminste heeeel zeker dat tie de goeie connectie pakt :)

  • DRvDijk
  • Registratie: Juni 2001
  • Laatst online: 12-02 15:52
Zou zoiets ook werken? (gewoon nieuwsgierig, kan niet testen enzo :P)
PHP:
1
<?$link = mysql_connect($host, $user, $pass);define ("MYSQL_CONNECTION", $link);?>

En dan later in andere PHP's MYSQL_CONNECTION als link-identifier gebruiken.. Hmm misskien hendy?

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 09-08 19:19
Gaat niet werken, zie http://www.php.net/manual/en/language.constants.php:
Only scalar data (boolean, integer, float and string) can be contained in constants.
't zou trouwens wel leuk zijn als het had gekund ;)

Verwijderd

Ik heb dat ook eens gehad. In Apache is er een optie om het connect dmv variabelen aan/ uit te zetten (dus alleen mysql_connect() met directe strings.
Pagina: 1