Avatar billede apa Nybegynder
30. december 2003 - 21:17 Der er 15 kommentarer og
2 løsninger

Spørgsmål vedr. !mysql_connect

Jeg sidder lige og studerer følgende funktioner fra www.webcafe.dk:

function database_forbindelse() {
  $server = "localhost";
  $bruger = "root";
  $kodeord = "";
  $database = "test";

  if (!mysql_connect("$server","$bruger","$kodeord")) {
    error("Kunne ikke oprette en forbindelse til MySQL.");
  }

  if(!mysql_select_db("$database")) {
    udskriv_fejl("Kunne ikke vælge databasen: $database");
  }   
}


function error($error) {
  echo "<p>$error";

  if ($error = mysql_error()) {
    echo "<br>Fejlen er: <em>$mysql_fejl</em>";
  }

  exit;
}


I funktionen database_forbindelse() bruges
!mysql_connect(), som jeg umiddelbart ville oversætte til NOT/IKKE forbindelse - men det er åbentbart også den der sørger for at oprette forbindelsen eller hvad?
Avatar billede ahv Nybegynder
30. december 2003 - 21:20 #1
Ja den prøver at oprette en forbindelse der og hvis ikke det lykkedes melder den om fejl.
Avatar billede apa Nybegynder
30. december 2003 - 21:23 #2
...men ville det ikke være mere logisk først at sige mysql_connect(), og derefter !mysql_connect()...eller roder jeg tingene sammen?
Avatar billede interkriller Nybegynder
30. december 2003 - 21:26 #3
samme som
$connect=mysql_connect("$server","$bruger","$kodeord
if (!$connect)
{
error("Kunne ikke oprette en forbindelse til MySQL.");
}
Avatar billede interkriller Nybegynder
30. december 2003 - 21:28 #4
den tjekker bare (som ahv også siger) at den både connecter og tjekker om connect var succesfuld på samme tid!
Avatar billede Slettet bruger
30. december 2003 - 21:29 #5
Den helt korrekt måde at gøre det på er;

$databasehandler=mysql_connect();

if (!$databasehandler) {
  error("Der gik noget galt");
}
Avatar billede Slettet bruger
30. december 2003 - 21:29 #6
Nå, det var jeg for lang tid om at skrive
Avatar billede detox Nybegynder
30. december 2003 - 21:35 #7
error() ? Er det ikke: exit("Der gik noget galt"); eller: die(mysql_error());
Avatar billede interkriller Nybegynder
30. december 2003 - 21:36 #8
men jeg var for lang tid om at skrive første indlæg :)
Avatar billede interkriller Nybegynder
30. december 2003 - 21:39 #9
religionsspørgsmål.......

Du kan vælge hvad du helst vil, gør ikke den store forskel.
Avatar billede detox Nybegynder
30. december 2003 - 21:40 #10
Men der er så vidt jeg ved ikke nogen funktion i php der hedder: error().
Avatar billede detox Nybegynder
30. december 2003 - 21:43 #11
En meddelelse som: "Der gik noget galt" fortæller jo ikke noget, så hellere bruge: die(mysql_error()); og få en rigtig fejlmeddelelse.
Avatar billede ahv Nybegynder
30. december 2003 - 21:48 #12
Kan ikke blive mere enig med detox.
Avatar billede apa Nybegynder
30. december 2003 - 21:52 #13
Gælder det for andre funktioner - altså at udførelse/IKKE udførelse kan tjekkes på samme tid ved at sætte ! foran funktionen?
Avatar billede erikjacobsen Ekspert
30. december 2003 - 21:54 #14
1) Der er ingenting i mysql_error() hvis mysql_connect fejler
2) Under udvikling kan det være smart nok at få udskrevet mysql_error() ellers
3) Ved drift er det direkte dumt at udskrive detaljer om databasen. Her bør man
  kalde en standard funktion, der dels gør noget fornuftigt overfor brugeren, måske
  ideelt set omdirigerer til en reserve-statisk udgave af en del af ens site, og
  på passende vis informerer udvikleren via en log, en email, en SMS - hvad man nu
  har til rådighed.

Bare mine 13 øres mening...
Avatar billede erikjacobsen Ekspert
30. december 2003 - 21:59 #15
1) Huskede forkert. Det er der vist nu om dage ... ;)
Avatar billede apa Nybegynder
30. december 2003 - 22:08 #16
Tak for svar!
Avatar billede Slettet bruger
30. december 2003 - 23:27 #17
Funktionen error bliver erklæret i samme include-fil, som er citeret i selve spørgsmålet.

Og så længe der kommer en fejl under åbningen af forbindelse til databasen er det forholdsvist let at fejlsøge, da det er temmelig begrænset, hvad der kan gå galt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester