MySQL-Verbindung funktioniert nicht "Call to undefined function mysql_connect()"

dochamburg

Mitglied
Salvete!

Habe folgendes Problem. Ich möchte per PHP auf meine Datenbank "zip" im localhost zugreifen und habe daher im PHP-Script "test.php" folgenden Code stehen:

PHP:
$sql = "INSERT INTO FILES (FI_DATEI) VALUES ($file)";
require("db_connect.php");
mysql_query($sql);
mysql_close();

die db_connect.php sieht folgendermassen aus:

PHP:
<?php
$mysqlhost="localhost"; // MySQL-Host angeben
$mysqluser="geheim"; // MySQL-User angeben
$mysqlpwd="geheim"; // Passwort angeben
$mysqldb="zip"; // Gewuenschte Datenbank angeben
$connection = mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die ("Verbindungsversuch fehlgeschlagen");

mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");
echo "Verbindung zur Datenbank erfolgreich <br>\n&nbsp;<br>\n";
?>

Wenn ich die test.php aufrufe, bekomme ich folgende Fehlermeldung:

Code:
Fatal error: Call to undefined function mysql_connect() in /var/www/apache2-default/test/db_connect.php on line 8

Wer kann mir da helfen?

Vielen Dank vorab!

dochamburg
 
Hallo!

Nun, die Meldung besagt ja ganz klar dass die Funktion unbekannt ist.
Richtig geschrieben ist sie aber.
Daher würde ich daraus schliessen dass PHP nicht für MySQL konfiguriert ist.

Gibt phpinfo() denn einen Abschnitt über MySQL aus?

Gruss Dr Dau
 
danke fuer die schnelle antwort!

phpinfo() gibt folgendes aus:

Code:
System 	Linux ibm-laptop 2.6.20-15-generic #2 SMP Sun Apr 15 07:36:31 UTC 2007 i686
Build Date 	Jul 17 2007 17:59:41
Server API 	Apache 2.0 Handler
Virtual Directory Support 	disabled
Configuration File (php.ini) Path 	/etc/php5/apache2/php.ini
Scan this dir for additional .ini files 	/etc/php5/apache2/conf.d
additional .ini files parsed 	/etc/php5/apache2/conf.d/mysql.ini, /etc/php5/apache2/conf.d/mysqli.ini, /etc/php5/apache2/conf.d/pdo.ini, /etc/php5/apache2/conf.d/pdo_mysql.ini
PHP API 	20041225
PHP Extension 	20060613
Zend Extension 	220060519
Debug Build 	no
Thread Safety 	disabled
Zend Memory Manager 	enabled
IPv6 Support 	enabled
Registered PHP Streams 	zip, php, file, data, http, ftp, compress.bzip2, compress.zlib, https, ftps
Registered Stream Socket Transports 	tcp, udp, unix, udg, ssl, sslv3, sslv2, tls
Registered Stream Filters 	string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, convert.iconv.*, bzip2.*, zlib.*

dank vorab!

dochamburg
 
phpinfo() gibt folgendes aus:
Das ist nur der obere Abschnitt.
Weiter unten im Abschnitt "Configuration" müsste "mysql" stehen (irgendwo zwischen "gd" und "session").

[edit]
Ansonsten kannst Du mal in der php.ini nachsehen ob das Semikolon vor "extension=php_mysql.so" entfernt ist.
[/edit]
 
Zuletzt bearbeitet:
hmmm...

das war die komplette ausgabe von phpinfo().

in der php.ini war diese spezielle extension "extension=php_mysql.so" auch nicht zu finden.

das paket "php5-mysql" ist aber installiert.

dank vorab!

dochamburg
 
habe eben einfach einmal "extension=php_mysql.so" in die php.ini eingetragen, sowohl den apache2 als auch den mysql-server gestoppt und neu gestartet und bekomme nun beim aufrufen des test.php (siehe oben) folgende ausgabe:

Code:
Verbindung zur Datenbank erfolgreich
 
Verbindung zur Datenbank erfolgreich
 
Verbindung zur Datenbank erfolgreich

scheint also zu funktionieren... :)

aber warum dreimal naja, reicht erstmal... werde wohl noch ein weilchen weiterbasteln muessen...

vielen dank!

dochamburg
 
Nun stehe ich allerdings vor der nächsten Problematik: Der Input in die Datenbank funktioniert nicht.

Der folgende Code sollte mir eigentlich drei Dateinamen (es sind drei Dateien im Ordner "zip" enthalten) in die Datenbank schreiben:

PHP:
$path = "./zip/";//Pfadangabe des Ordners
$handle = opendir ($path);//Oeffnen des Ordners
while($file = readdir($handle)) {
 if ($file != "." && $file != "..") {
$exploded = explode(".",$file);//Trennen nach "."

//datenbankeintrag
$sql = "INSERT INTO FILES (FI_DATEI) VALUES ($file)";
require("db_connect.php");
mysql_query($sql) or die ("Input hat nicht funktioniert.");
 }
}

Beim Aufruf des Scriptes bekomme ich folgende Nachricht:

Code:
Verbindung zur Datenbank erfolgreich
 
Input hat nicht funktioniert.

Her noch einmal der Code der db_connect.php:

PHP:
<?php
$mysqlhost="localhost"; // MySQL-Host angeben
$mysqluser="geheim"; // MySQL-User angeben
$mysqlpwd="geheim"; // Passwort angeben
$mysqldb="zip"; // Gewuenschte Datenbank angeben
$connection = mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die ("Verbindungsversuch fehlgeschlagen");

mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht waehlen.");
echo "Verbindung zur Datenbank erfolgreich <br>\n&nbsp;<br>\n";
?>

Der Input funktioniert also nicht. Woran kann das liegen?

Vielen Dank vorab!


dochamburg
 
Ändere mal
PHP:
mysql_query($sql) or die ("Input hat nicht funktioniert.");
in
PHP:
mysql_query($sql) or die (mysql_error());
Dann sollte Dir MySQL genaueres sagen.
 
Salve!

Habe die von Dir vorgeschlagene Änderung durchgeführt. Bekomme nun folgende Info:

Code:
Verbindung zur Datenbank erfolgreich
 
Unknown column '10758_02_128x96_95.3gp' in 'field list'

Dies sagt mir aber leider auch nicht mehr, denn '10758_02_128x96_95.3gp' ist eine Video-Datei innerhalb des ausgelesenen Ordners "zip". Mit dem Script sollen Ordner ausgelesen werden, die viele solcher Dateien enthalten. Die Zeichengrösse in der Datenbank kann auch nicht überschritten sein. sie steht auf 50:

Code:
CREATE TABLE FILES
        (FI_ID INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
        FI_DATEI VARCHAR(50) NOT NULL
        );

Vielen Dank vorab!


dochamburg
 
Es funktioniert übrigens auch nicht, wenn ich die Video-Datei durch z.b. eine .rar-Datei ersetze... Wenn ich sie lösche und nur noch zwei .jpg-Dateien im Ordner habe, erscheint diese Meldung:

Code:
Verbindung zur Datenbank erfolgreich
 
Unknown column 'jrr_tolkien_howe_018.jpg' in 'field list'

Anscheinend mag MySQL in meinem Fall überhaupt keine Dateien... :confused:

Vielen Dank vorab!


dochamburg
 

Neue Beiträge

Zurück