Fatal error: Call to undefined function mysql_connect()

Ich hab mir selbst eine gebaut.

'./configure' '--prefix=/usr' '--exec-prefix=/usr' '--sysconfdir=/etc' '--program-prefix=' '--enable-ipv6' '--enable-static' '--enable-shared' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--disable-all' '--without-pear' '--with-config-file-path=/etc' '--localstatedir=/var' '--disable-rpath' '--enable-maintainer-zts' '--enable-embed=static' '--disable-cgi' '--disable-fpm' '--disable-cli' '--enable-sockets' '--enable-posix' '--enable-session' '--enable-dom' '--enable-simplexml' '--enable-soap' '--enable-xml' '--enable-xmlreader' '--enable-xmlwriter' '--enable-json' '--enable-bcmath' '--enable-libxml' '--enable-wddx' '--with-xmlrpc' '--with-zlib' '--with-iconv' '--with-curl' '--enable-mbstring' '--enable-calendar' '--with-gd' '--with-imap' '--with-imap-ssl' '--with-kerberos' '--with-openssl'  '--with-mysql=shared,mysqlnd' '--with-mysqli=shared,mysqlnd'

den configure string hab ich aus phpino(); vom PI

Das Problem ist wenn die Extension nicht gehen dann muss man eben wieder zurück :mad:

Gibt’s was neues ? Sonst muss man halt wieder das alte PHP verweden [emoji24][emoji24][emoji16]

Als Workaround rufe ich aus den IPS-Skripten ein Perlscript auf, das für mich die MySQL-Befehle rausschickt. Für „INSERT INTO“ und „UPDATE“ funktioniert das recht gut, da ich beim Aufruf einfach den Querystring mit übergebe. Bei „SELECT“-Befehlen müsste das Perlscript dann ja auch die Ergebnisse aus der Datenbank wieder an das PHP-Script zurückliefern. Geht auch, ist dann aber etwas aufwendiger.

Aber trotzdem warte ich weiterhin sehnsüchtig auf eine saubere Lösung :wink:

Gruß
Peter

Hallo paresy,
wie geht es mit dem IPS-Support für die noch fehlende mysql-Anbindung weiter? :smiley: Ist eine Lösung (oder Anleitung) in Sicht?
Gruß
Peter

:confused::confused::confused: Ich frag auch mal vorsichtig nach :confused::confused::confused::confused:

Ich gehe nun mit einem teil meiner Lösungen den Weg über austausch Dateien was aber keine wirkliche Lösung ist.

Und bald kommt der Winter und ich würde gerne meine Heizung wieder in betrieb nehmen :slight_smile:

Leider ist bisher beides nicht in Sicht.

Unter Windows wirft man ja einfach nur die DLL rein.
Auf dem Raspberry hat das mit dem Kompilieren, so wie ich es mir vorgestellt habe, leider nicht geklappt. :frowning:

paresy

Kannst du das nicht standardmäßig mit ein kompilieren?

Hallo zusammen,
hier mal ein Workaround, um die MySQL- Datenbank trotzdem abfragen zu können. Ich habe dazu auf meinem BananaPI unter /home/bananapi ein Script angelegt, welches die Datenbankabfragen durchführt. Dieses Script wird dann aus IPS heraus per shell_exec aufgerufen.

PHP-Script „mysql_handler.php“ irgendwo auf dem Raspberry (bei mir unter /home/bananapi/):

<?php

$host   = $argv[1];
$user   = $argv[2];
$passwd = $argv[3]; 
// wer das Passwort nicht in der Kommandozeile dieses Scriptes mit übergeben will, kann das Passwort hier hardcodieren
// $passwd = "geheim";
$dbname = $argv[4];
$query  = $argv[5];

$SQLInstanz = mysql_connect($host, $user, $passwd);
mysql_select_db($dbname);
$result = mysql_query($query) or die ("Fehler bei SQL-Abfrage $query<br>Error:" . mysql_error());

$i=0;
while ($row = mysql_fetch_row($result)) {
   for($j=0;$j<count($row);$j++)
      $array[$i][$j] = $row[$j];
   $i++;
}

mysql_close($SQLInstanz);
$array_as_str = serialize($array);
echo $array_as_str;

?>

Script im IPS:

<?

define("HOST",     "192.168.1.5", false);
define("PORT",     3306,false);
define("USER",     "pluto",false);  	// Datenbankbenutzer
define("PASS",     "geheim",false);     // Passwort des Datenbankbenutzers
define("DBNAME",   "meinedb",false);    // zu nutzende Datenbank

// Beispiel-Abfrage:
$query = "SELECT nickname,active from ports WHERE kategorie='SENSOR' ORDER BY nummer DESC";
$result = shell_exec("/usr/bin/php /home/bananapi/mysql_handler.php ".HOST." ".USER." ".PASS." ".DBNAME." \"".$query."\" &");

$array = unserialize($result);

// Beispiel (assoziierte Indizes sind hier nicht möglich)
foreach ($array as $row) {
    echo $row[0]."  ".$row[1]."
";
}
?>

Ich habe die Scripte auf die Schnelle „zusammengekloppt“. Kann also gut sein, dass irgendwo noch Fehler enthalten sind, aber bei mir funktioniert es soweit.
Gruß
Peter

Gibt es schon was neues ?

Ich würde dir gerne eine andere Antwort geben, aber leider nein.

paresy

Hallo prasey

gibt es neue Erkenntnisse?

Gruß
Jan Peter

Ich hoffe es langsam weil so ohne dB ist es doof :frowning:

Hallo Parsey,

hast du schon eine Idee wann es hier weitergeht.
Ich nutze die mcypt funktion um meine Heizung anzusteueren…

Gruß
Jan Peter

Könnten wir auf das Problem bitte etwas Priorität legen? :confused::confused::confused:

Ist ist sehr unwahrscheinlich, dass ich mir das Problem vor dem Release ansehen kann. Zum Release werde ich es als bekannte Einschränkung bei den Linux/RasperryPi/OSX Versionen angeben. Unter Windows kannst du weiterhin wie gewohnt MySQL nutzen.

Tut mir Leid, aber die fehlenden Features und dringende Bugs, wie die Abstürze haben hier Vorrang.

Ich würde somit fürs erste auf den o.g. Workaround setzen.

paresy

Evtl. übersehe ich da was aber unter Windows funktioniert MySQL ebenfalls nicht. In der php.ini ist die extension angegeben…

Array
(
    [0] => Core
    [1] => bcmath
    [2] => calendar
    [3] => ctype
    [4] => date
    [5] => ereg
    [6] => filter
    [7] => ftp
    [8] => hash
    [9] => iconv
    [10] => json
    [11] => mcrypt
    [12] => SPL
    [13] => odbc
    [14] => pcre
    [15] => Reflection
    [16] => session
    [17] => standard
    [18] => mysqlnd
    [19] => tokenizer
    [20] => zip
    [21] => zlib
    [22] => libxml
    [23] => dom
    [24] => PDO
    [25] => openssl
    [26] => SimpleXML
    [27] => wddx
    [28] => xml
    [29] => xmlreader
    [30] => xmlwriter
    [31] => IP-Symcon
    [32] => curl
    [33] => gd
    [34] => imap
    [35] => Phar
    [36] => sockets
    [37] => mhash
)
21.10.2015 09:20:07*| ScriptEngine*| Result for Event Scripts\Strom\SBFSpot\Daily Every 5 minute(s)
<br />
<b>Fatal error</b>:  Call to undefined function mysql_connect() in <b>C:\IP-Symcon\scripts\33509.ips.php</b> on line <b>59</b><br />

Hast du die Erweiterungen auch runter geladen ? IPS macht das aktuell nicht alleine.
http://windows.php.net/downloads/releases/php-5.5.30-Win32-VC11-x86.zip
Michael

Danke das war es :slight_smile:

Scheinbar lässt der 4.0 Updater die DLLs der 3.x Installation liegen, woraufhin diese natürlich nicht geladen werden konnten. Nachdem ich die mit den von dir genannten überschrieben habe läuft alles.

Heul :frowning: will auch

Ist im aktuellen Update verfügbar als MySQL Native Driver. Dieses Modul ist unter Vorbehalt drin. :wink:

Die mysql_* Befehle müssten verfügbar sein.

paresy

PS: Für Windows muss die php_mysql.dll manuell hinzugefügt werden.