Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[PHP] Seit Nutzung von CLI geht mysql_connect nicht mehr

Empfohlene Antworten

Veröffentlicht

Hi,

ich habe ein paar PHP-Skripte, die auf der Kommandozeile ausgeführt werden (für Crons). Doch seitdem ich etwas mit mysql mache in meinem Skript bekomme ich den Fehler:

Fatal error: Call to undefined function: mysql_connect() in /../connect.inc.php

Das Skript is richtig, denn lasse ich es normal über den Webbrowser aufrufen, dann geht es. Aber eben nicht als CLI. Habe schon wie blöde gegoogelt, aber die einzigen Tipps bezogen sich auf PHP5. Ich habe aber PHP 4.3.9 auf Apache2 unter SuSE laufen.

Wenn jemand etwas weiß, dann wäre ich ihm sehr dankbar :))))))

[edit]

Wenn ich "andere" Sachen als CLI mache, z.B. ein simples echo() dann geht es; also CLI funktioniert grundsätzlich eigentlich schon....

ich weiss nicht genau was du mit CLI meinst, aber es sieht so aus, als würde dieses CLI die mysql.lib nich mitladen.

vielleicht müsstest du in diesem fall die Mysql.so händisch "nachladen":


// Example loading an extension based on OS
if (!extension_loaded('mysql')) {
dl('mysql.so');
}

[/PHP]

siehe:

http://de2.php.net/manual/de/function.dl.php

Leider ist Safe-Mode eingeschaltet, womit dl schon mal ausfällt :(

Aber danke für den Tipp.

CLI meine ich, dass ich PHP über Kommandozeile aufrufe, z.B. so: php meinSKript.php

kannst du vielleicht beim interpreter per parameter direkt libs mitladen?

für dein Problem existiert noch eine andere Fehlerquelle, als PHP5. Daher meine Frage, welche MySQL Version du benutzt, denn genau dort könnte der Fehler sein, den du bekommst.

Oder habe ich das grade falsch verstanden, dass das Script im Webbroser funktioniert, und nur über die Konsole diese Fehlermeldung ausspuckt?

Oder habe ich das grade falsch verstanden, dass das Script im Webbroser funktioniert, und nur über die Konsole diese Fehlermeldung ausspuckt?

wohl falsch verstanden ;)

Im Webbrowser funktioniert ist, auf Kommandozeile nicht.

kannst du vielleicht beim interpreter per parameter direkt libs mitladen?

Nee, nicht wirklich....

sicher das du per CMD den gleichen PHP interpreter verwendest wie wenn du per Webserver PHP verwendest?

vielleicht solltest du mal mit beiden interpretern phpinfo() ausführen und die ausgaben vergleichen

Ok, da du mit Crons arbeitest, nehme ich einfach mal an, dass du für den Webserver das PHP-Modul benutzt.

Habs grade mal auf ner Windows Maschine getestet (Auf der Arbeit kann ich leider nicht unter Linux arbeiten) und da hier auch PHP als CGI läuft, gibt es keinerlei probleme.

Vielleicht währe es sinnvoll, wenn du in der console mal die phpinfo() aufrufst, und eventuell die php.ini anpassen würdest.

eventuell müsste die cli Version auch mit mysql support compiliert werden, kanns aber erst wirklich testen, wenn ich zu hause auf der Linux maschine den Fehler nachvollzogen habe.

Ok, da du mit Crons arbeitest, nehme ich einfach mal an, dass du für den Webserver das PHP-Modul benutzt.

Habs grade mal auf ner Windows Maschine getestet (Auf der Arbeit kann ich leider nicht unter Linux arbeiten) und da hier auch PHP als CGI läuft, gibt es keinerlei probleme.

Vielleicht währe es sinnvoll, wenn du in der console mal die phpinfo() aufrufst, und eventuell die php.ini anpassen würdest.

eventuell müsste die cli Version auch mit mysql support compiliert werden, kanns aber erst wirklich testen, wenn ich zu hause auf der Linux maschine den Fehler nachvollzogen habe.

naja ist ja genau was ich auch schon gesagt habe...., bzw. gemeint habe :rolleyes:

Als ich das geschrieben habe, war dein Beitrag aber noch nicht vorhanden *G*

Also sorry, wenn ich es wiederholt haben sollte, war nicht meine Absicht :D

Als ich das geschrieben habe, war dein Beitrag aber noch nicht vorhanden *G*

Also sorry, wenn ich es wiederholt haben sollte, war nicht meine Absicht :D

ich wollte dich nicht anschnautzen, sorry...

*handreich* ;)

Ja also es sind zwei unterschiedliche php.ini's die er da nimmt, eine für den Webbrowser und eine für CLI. Habe beide angepasst und wenn ich mir für beide die phpinfo ausgeben lasse, steht da auch jedes Mal "-- with mysql", also halt das mysql mit kompiliert wurde... aber der fehler bleibt leider bestehen. :(

Ich bin grade ein wenig ratlos, denn normal müsste es gehen. Vielleicht postest du mal den entsprechenden Teil aus der Datei, der den Fehler verursacht. Ich vermute inzwischen nämlich fast, dass du einen winzigen Schreibfehler gemacht hast.

Ich bin grade ein wenig ratlos, denn normal müsste es gehen. Vielleicht postest du mal den entsprechenden Teil aus der Datei, der den Fehler verursacht. Ich vermute inzwischen nämlich fast, dass du einen winzigen Schreibfehler gemacht hast.

hm naja, dann würde es aber auch in der version ohne CLI nicht gehen....

Hi nochmal,

also Schreibfehler schließe ich mal aus, denn in der Webversion funktioniert es ja. Und sonst hätte da ja auch ein Fehler kommen müssen.

Mir ist aufgefallen, dass CLI scheinbar "manchmal" eine andere .ini-Datei nimmt, warum auch immer, wo die mysql-Erweiterung eingeschaltet sind, aber trotzdem bekomme ich bei phpinfo keinen Eintrag für mysql... sehr merkwürdig. Selbst wenn über php -c explizit sage, er soll die ini nehmen, wo mysql aktiviert ist, dann kriege ich manchmal (wie gesagt: es geht teilweise, aber teilweise auch nicht?!) keine Angabe über mysql und manchmal halt schon "-- with mysql" und darunter die Einträge dafür.

Echt sehr strange...

Also wenn noch wer ne Idee hat... :))))

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.