dedlfix: mysql_connect

Beitrag lesen

echo $begrüßung;

//Verbindung zu MySQL herstellen

$verbindung =mysql_connect("localhost", "root","pw");
//Verbindung zu Datenbank herstellen
mysql_select_db('db12',$verbindung);

  
Hier gibst du mysql\_select\_db() die Verbindungskennung mit auf den Weg.  
  

> nun habe ich einmal vergessen das pw einzugeben (weil local habe ich keins) und die Datei nur mit folgenden Code  
> `$verbindung =mysql_connect("localhost", "root","");`{:.language-php}  
> auf den Server kopiert.  
>   
> Ich war erstaunt, das ich zwar folgende Warung bekam  
> ~~~php

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: YES) in ....  

> Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in .....

, aber smtliche Abfragen trotzdem funktionierten.

Bei den anderen Funktionen machst du das vermutlich nicht. In dem Fall wird die zuletzt geöffnete Verbindung verwendet. Ist keine geöffnet, und das ist ja nach deinem Fehler der Fall, wird eine Verbindung mit Defaultwerten (siehe phpinfo()-Ausgabe) geöffnet. Der MySQL-Server hatte anzunehmenderweise nichts dagegen, mit diesen Defaultwerten eine Verbindung anzunehmen.

Ich habe jetzt noch folgende Zeile hinzugefügt:
if (!$verbindung) { echo "Keine Verbindung zur Datenbank"; exit;}

Es ist immer eine gute Idee, die Rückgabewerte der verwendeten Funktionen auszuwerten. Sie geben nicht nur das Gewünschte zurück sondern signalisieren über den Rückgabewert mitunter auch Fehlerzustände. Diese zu ignorieren ziehen meist Folgefehler nach sich.

echo "$verabschiedung $name";