tutorials.de Buch-Aktion 05/2012
Seite 1 von 3 123 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
31
ZUGRIFFE
22840
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    dochamburg dochamburg ist offline Mitglied Bronze
    Registriert seit
    Oct 2007
    Ort
    Hamburg
    Beiträge
    37
    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-Code:
    $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-Code:
    <?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 :
    1
    
    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
     

  2. #2
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    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
     
    Schri-Schra-Schrödi *g*
    mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
    Dinge, die mit Tabellen besser klappen als mit CSS
    Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
    Meine Links zum Thema Linux (Last update: 29.10.2011)
    Kein Busen ist so flach wie das Niveau dieser Party!
    ----
    Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
    ----
    Ich habe 3 Kinder und kein Geld!
    Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)

  3. #3
    dochamburg dochamburg ist offline Mitglied Bronze
    Registriert seit
    Oct 2007
    Ort
    Hamburg
    Beiträge
    37
    danke fuer die schnelle antwort!

    phpinfo() gibt folgendes aus:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    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
     
    Vorsicht! Newbie in PHP und MySQL!!

    "Quidquid id est, timeo Danaos et dona ferentes!"

  4. #4
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    Zitat Zitat von dochamburg Beitrag anzeigen
    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]
    Geändert von Dr Dau (29.10.07 um 18:52 Uhr)
     
    Schri-Schra-Schrödi *g*
    mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
    Dinge, die mit Tabellen besser klappen als mit CSS
    Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
    Meine Links zum Thema Linux (Last update: 29.10.2011)
    Kein Busen ist so flach wie das Niveau dieser Party!
    ----
    Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
    ----
    Ich habe 3 Kinder und kein Geld!
    Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)

  5. #5
    dochamburg dochamburg ist offline Mitglied Bronze
    Registriert seit
    Oct 2007
    Ort
    Hamburg
    Beiträge
    37
    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
     
    Vorsicht! Newbie in PHP und MySQL!!

    "Quidquid id est, timeo Danaos et dona ferentes!"

  6. #6
    dochamburg dochamburg ist offline Mitglied Bronze
    Registriert seit
    Oct 2007
    Ort
    Hamburg
    Beiträge
    37
    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 :
    1
    2
    3
    4
    5
    
    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
     
    Vorsicht! Newbie in PHP und MySQL!!

    "Quidquid id est, timeo Danaos et dona ferentes!"

  7. #7
    dochamburg dochamburg ist offline Mitglied Bronze
    Registriert seit
    Oct 2007
    Ort
    Hamburg
    Beiträge
    37
    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-Code:
    $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 :
    1
    2
    3
    
    Verbindung zur Datenbank erfolgreich
     
    Input hat nicht funktioniert.

    Her noch einmal der Code der db_connect.php:

    PHP-Code:
    <?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
     
    Vorsicht! Newbie in PHP und MySQL!!

    "Quidquid id est, timeo Danaos et dona ferentes!"

  8. #8
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    Ändere mal
    PHP-Code:
    mysql_query($sql) or die ("Input hat nicht funktioniert."); 
    in
    PHP-Code:
    mysql_query($sql) or die (mysql_error()); 
    Dann sollte Dir MySQL genaueres sagen.
     
    Schri-Schra-Schrödi *g*
    mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
    Dinge, die mit Tabellen besser klappen als mit CSS
    Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
    Meine Links zum Thema Linux (Last update: 29.10.2011)
    Kein Busen ist so flach wie das Niveau dieser Party!
    ----
    Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
    ----
    Ich habe 3 Kinder und kein Geld!
    Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)

  9. #9
    dochamburg dochamburg ist offline Mitglied Bronze
    Registriert seit
    Oct 2007
    Ort
    Hamburg
    Beiträge
    37
    Salve!

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

    Code :
    1
    2
    3
    
    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 :
    1
    2
    3
    4
    
    CREATE TABLE FILES
            (FI_ID INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
            FI_DATEI VARCHAR(50) NOT NULL
            );

    Vielen Dank vorab!


    dochamburg
     
    Vorsicht! Newbie in PHP und MySQL!!

    "Quidquid id est, timeo Danaos et dona ferentes!"

  10. #10
    dochamburg dochamburg ist offline Mitglied Bronze
    Registriert seit
    Oct 2007
    Ort
    Hamburg
    Beiträge
    37
    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 :
    1
    2
    3
    
    Verbindung zur Datenbank erfolgreich
     
    Unknown column 'jrr_tolkien_howe_018.jpg' in 'field list'

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

    Vielen Dank vorab!


    dochamburg
     
    Vorsicht! Newbie in PHP und MySQL!!

    "Quidquid id est, timeo Danaos et dona ferentes!"

  11. #11
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    Die Meldung besagt dass die Spalte '10758_02_128x96_95.3gp' unbekannt ist, bzw. nicht in der Auflistung der Spaltennamen zu finden ist.
    Warum PHP nun einfach einen Dateinamen als Spaltennamen nimmt, kann ich so nicht nachvollziehen.
    Daher würde ich erstmal vorschlagen die Tabellen-/Spaltennamen auch als solche, und den String auch als String anzugeben:
    PHP-Code:
    $sql "INSERT INTO `FILES` (`FI_DATEI`) VALUES ('".$file."')"
    [edit]
    Und wenn das nicht funktioniert, dann mal so versuchen:
    PHP-Code:
    $sql "INSERT INTO `FILES` SET `FI_DATEI`='".$file."'"
    [/edit]
    Geändert von Dr Dau (30.10.07 um 18:20 Uhr)
     
    Schri-Schra-Schrödi *g*
    mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
    Dinge, die mit Tabellen besser klappen als mit CSS
    Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
    Meine Links zum Thema Linux (Last update: 29.10.2011)
    Kein Busen ist so flach wie das Niveau dieser Party!
    ----
    Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
    ----
    Ich habe 3 Kinder und kein Geld!
    Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)

  12. #12
    dochamburg dochamburg ist offline Mitglied Bronze
    Registriert seit
    Oct 2007
    Ort
    Hamburg
    Beiträge
    37
    Erstere Variante funktioniert. Vielen dank!

    Allerdings überschreibt er die Einträge nicht, sondern schreibt die Einträge zusätzlich in die Datenbank, so dass ich bei mehrfachem Ausführen des Scriptes denselben Eintrag mehrfach habe. Naja, das laesst sich auch noch regeln.

    Vielen Dank nochmals!

    dochamburg
     
    Vorsicht! Newbie in PHP und MySQL!!

    "Quidquid id est, timeo Danaos et dona ferentes!"

  13. #13
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    PHP-Code:
    "SELECT `FI_DATEI` FROM `FILES` WHERE `FI_DATEI`='".$file."'"
    Damit machst Du eine Abfrage vor dem INSERT, aber nach dem auslesen des Verzeichnis.
    Gibt MySQL ein FALSE als Ergebnis zurück, ist der Eintrag nicht vorhanden und Du kannst Dein INSERT ausführen.
     
    Schri-Schra-Schrödi *g*
    mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
    Dinge, die mit Tabellen besser klappen als mit CSS
    Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
    Meine Links zum Thema Linux (Last update: 29.10.2011)
    Kein Busen ist so flach wie das Niveau dieser Party!
    ----
    Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
    ----
    Ich habe 3 Kinder und kein Geld!
    Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)

  14. #14
    Lateknight Lateknight ist offline Mitglied
    Registriert seit
    Dec 2011
    Beiträge
    12
    Hallo liebes Forum,

    bin neu hier, weil ich trotz stundenlangem lesen im Internt keine Lösung für folgendes problem gefudnen habe:

    Ich versuche derzeit einen Webserver zu erstellen, da ich gerne mit drupal arbeiten würde, ein Art Webshop.

    Dafür brauche ich ein Apache Webserver, PHP und nstürlich noch die Datenbank MySQL und MyphpAdmin.

    Da ich aber nach dem erfolgreichem installieren von apache 2.2 und von php 5.3 (nach diesem prinzip http://www.youtube.com/watch?v=pZMBT...eature=related) auch MySQL installiert habe(http://www.bicubica.com/apache-php-mysql/index.php), muss ich diese nun konfigurieren: und hier häng ich fest. Mehrere Seiten die mir sagen, was ich wohin kopieren soll und wie ich die PATh veräandern soll, konnten mir nicht helfen um diesen Fehler zu beseitigen: Beim öffnen der testseite die mit php erstellt wurde, erhalte ich folgenede Fehlermeldung:

    Fatal error: Call to undefined function mysql_connect() in C:\webserver\htdocs\mysql_test.php on line 9

    die php.ini ist sauber geschrieben und ein Kollege von mir(programmierer) hat mir das auch bestätigt, hat aber nicht die Zeit mir zu helfen.
    Seine Prognose war es, dass mein php nicht richtig auf mein mysql konfiguriert ist.

    So also meine Frage: kann mirirgendjemannd sagen, was ich tun kann, damit er den Befehl "connect()" lernt bzw. versteht.

    Habe dann nach dieser Seite(http://www.wintotal.de/artikel/artikel-2005/32.html) extensionen freigestellt:

    extension=php_bz2.dll (=> Komprimierungsfunktionen)
    extension=php_cpdf.dll (=> ClibPDF-Funktionen)
    extension=php_gd2.dll (=> Bibliotheksfunktionen zur Bildmanipulation)
    extension=php_mbstring.dll (=> Multibyte String Funktionen)
    extension=php_ming.dll (=> Funktionen für Flash)
    extension=php_mysql.dll (=> Funktionen für MySQL)

    Wobei mir auffiel, dass ich einige dieser nicht zurverfügung habe( vielelicht ältere version?!)
     

  15. #15
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    Zitat Zitat von Lateknight Beitrag anzeigen
    Fatal error: Call to undefined function mysql_connect() in C:\webserver\htdocs\mysql_test.php on line 9
    Ist zumindest schonmal ein Zeichen dass Apache und PHP laufen.
    Hast Du denn auch wirklich die php_mysql.dll genommen, und nicht aus versehen die php_mysqli.php?
    Und MySQL hast Du gestartet?
    Und hast Du nach der Änderung an der php.ini Apache neu gestartet?

    Zitat Zitat von Lateknight Beitrag anzeigen
    extension=php_bz2.dll (=> Komprimierungsfunktionen)
    extension=php_cpdf.dll (=> ClibPDF-Funktionen)
    extension=php_gd2.dll (=> Bibliotheksfunktionen zur Bildmanipulation)
    extension=php_mbstring.dll (=> Multibyte String Funktionen)
    extension=php_ming.dll (=> Funktionen für Flash)
    extension=php_mysql.dll (=> Funktionen für MySQL)

    Wobei mir auffiel, dass ich einige dieser nicht zurverfügung habe( vielelicht ältere version?!)
    Wenn Erweiterungen nicht vorhanden sind, macht es auch keinen Sinn sie zu aktivieren.
    Welche Erweiterungen fehlen denn?

    ClibPDF ist schon lange veraltet..... und steht nichtmal mehr im PHP Handbuch.
    Alternativ könntest Du auch PDFlib Lite (php_pdf.dll) nehmen..... ist allerdings nur in der abgespeckten Version kostenlos.
    2. Möglichkeit wäre FPDF, ist allerdings keine PHP Erweiterung, sondern eine PHP Klasse (also ein PHP Script).
    Dafür ist FPDF aber uneingeschränkt (also auch kommerziell) nutzbar.

    Ming..... Du kannst ja mal testen ob die php_ming.dll aus PHP 5.2 mit PHP 5.3 kompatibel ist.
    Oder Du lädst Dir den Sourcecode runter und kompilierst Ming selber (http://www.libming.org/FrontPage).
    Alternativ --> http://www.php.net/manual/de/book.swf.php
    Lateknight bedankt sich. 
    Schri-Schra-Schrödi *g*
    mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
    Dinge, die mit Tabellen besser klappen als mit CSS
    Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
    Meine Links zum Thema Linux (Last update: 29.10.2011)
    Kein Busen ist so flach wie das Niveau dieser Party!
    ----
    Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
    ----
    Ich habe 3 Kinder und kein Geld!
    Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)

Ähnliche Themen

  1. Antworten: 15
    Letzter Beitrag: 24.05.09, 20:09
  2. undefined function mysql_connect()
    Von icarus42 im Forum PHP
    Antworten: 5
    Letzter Beitrag: 04.07.08, 14:38
  3. Call to undefined function mysql_connect()
    Von Deletemaster im Forum PHP
    Antworten: 4
    Letzter Beitrag: 01.02.08, 21:40
  4. [Debian] "undefined function session_start()"
    Von MArc im Forum Linux & Unix
    Antworten: 9
    Letzter Beitrag: 19.05.06, 20:39
  5. Antworten: 6
    Letzter Beitrag: 10.03.06, 03:03