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

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:
$sql = "INSERT INTO `FILES` (`FI_DATEI`) VALUES ('".$file."')";

[edit]
Und wenn das nicht funktioniert, dann mal so versuchen:
PHP:
$sql = "INSERT INTO `FILES` SET `FI_DATEI`='".$file."'";
[/edit]
 
Zuletzt bearbeitet:
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
 
PHP:
"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.
 
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=pZMBTsjcSkY&feature=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?!)
 
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?

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
 
Hallo Dr. Dau und nochmals danke für die Antwort.

Also: Ich habe php_mysql.dll verwendet und auch MySQL gestartet. Die Möglichkeit besteht, dass Apache nicht jedesmal nach einer Änderung neu gestartet habe. Ist dies ein Problem und wenn, wie kann ich es beheben?
Ich habe folgende Extensions nicht:
-extension=php_ming.dll
-extension=php_cpdf.dll

Ich hoffedas hift dir.

Zu Ming.. ich wüsste nicht wie ich das testen soll, kannst du mir das bitte erklären?

MfG Lateknight

So sehen zur Zeit die Extensionen bei mir aus: ;
extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_fileinfo.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
extension=php_mbstring.dll
;extension=php_exif.dll ; Must be after mbstring as it depends on it
extension=php_mysql.dll
;extension=php_mysqli.dll
;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client
;extension=php_oci8_11g.dll ; Use with Oracle 11g Instant Client
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_phar.dll
;extension=php_pspell.dll
;extension=php_shmop.dll

Hoffe das hilft weiter :D
 
Zuletzt bearbeitet von einem Moderator:
Die Möglichkeit besteht, dass Apache nicht jedesmal nach einer Änderung neu gestartet habe. Ist dies ein Problem und wenn, wie kann ich es beheben?
Wenn Änderungen an der php.ini vorgenommen werden, muss Apache auch neu gestartet werden um die Änderungen zu übernehmen (meine ich zumindest).
Hast Du Apache als Dienst laufen?
Dann beende den Dienst und starte ihn anschliessend wieder.
Wenn Dir das zu kompliziert ist, kannst Du natürlich auch den ganzen Computer neustarten. ;)

Ich habe folgende Extensions nicht:
-extension=php_ming.dll
-extension=php_cpdf.dll

Ich hoffedas hift dir.
Habe ich mir schon gedacht, darum habe ich dazu ja auch schon was geschrieben. ;)

Zu Ming.. ich wüsste nicht wie ich das testen soll, kannst du mir das bitte erklären?
Von http://windows.php.net die ZIP-Version von PHP 5.2 runterladen, entpacken und dann die darin befindliche php_ming.dll ins ext-Verzeichnis von PHP 5.3 kopieren.
Dann die php_ming.dll noch in die php.ini eintragen und Apache neustarten.

Lateknight hat gesagt.:
So sehen zur Zeit die Extensionen bei mir aus: ;
[...]
Hoffe das hilft weiter :D
Sieht soweit OK aus.
 
Hab vorhin mal die PHP.exe gestartet und dei hat mir gesagt, dass sie die ganzen Module nicht finden kann, also hab ich in der php.ini nachgeguckt und siehe da: ein ; noch vor der extension_dir weg, dann hat php auch nichts mehr gesagt(ja apache neu gestartet) So nun steht aber auf der Meiner Testseite nicht mehr der alte Fehler, sondern ein Neuer:

"Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\webserver\htdocs\mysql_test.php on line 15"

Also bei diesen Fehler weiß ich beim besten willen nicht, was falsch ist!

Um Hilfe wird gebeten, danke :D
MfG Lateknight
 
Zuletzt bearbeitet:
Hi

Entweder hast du dich nicht mit der DB verbinden können (falsche Serverdaten,
falscher Benutzername/Passwort)
oder die SQL-Anweisung war nicht in Ordnung.

Nimm die eventuell vorhandenen @ raus und gib die Fehlermeldungen von mysql_error aus.

Gruß
 
Hi sheel,
"Entweder hast du dich nicht mit der DB verbinden können (falsche Serverdaten,
falscher Benutzername/Passwort)"

Also wenn ich nach meines wissens ein eigentlich falsches pw eintippe, erhalte ich diese Fehlermeldung:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'SVR-Internet' (using password: YES) in C:\webserver\htdocs\mysql_test.php on line 9
Access denied for user 'root'@'SVR-Internet' (using password: YES)

Somit müsste ja pw und rest stimmen, also bei der erstenfehlermeldung, weil er mir ja sagt, dass ich mit dem falschen pw nicht connecten kann
...
"Nimm die eventuell vorhandenen @ raus und gib die Fehlermeldungen von mysql_error aus."

hier weiß ich erlichgesagt nicht, wo ich welche @ rausnehmen soll :-/ ( sorry, bin noch Anfänger)

aber danke für die Hilfe ;D

ob der befehl falsch ist, weiß ich nicht, sieht so aus:
PHP:
$host="192.168.10.204";
$username="root";
$password="MEIN PASSWORD";
$db_name="test"; 

mysql_connect("$host", "$username", "$password")or die(mysql_error());
mysql_select_db("$db_name")or die("cannot select db");

$sql = "SELECT * FROM test";
$res = mysql_query($sql);

while ($field = mysql_fetch_array($res))
{
$id = $field['id'];
$name = $field['name'];

echo 'ID: ' . $field['id'] . '<br />';
echo 'Name: ' . $field['name'] . '<br /><br />';
}


Ich hoffe das hilft, in mysql wei0 ich nicht was ich eingeben muss, um auf den server zukommen :(
 
Zuletzt bearbeitet von einem Moderator:
Zurück