Umstellung von SQLite zu MySQLi

Ich bin gerade dabei, von meinem Windows System auf einen Raspberry zu wechseln. Da ich keine zusätzlichen php Module laden kann, muss ich auch meine Datenverwaltung umstellen. Soweit funktioniert alles, bis an einer Stelle im Skript. Ich habe mir schon verschiedene php Anleitungen durchgeschaut, jedoch leider keine Lösung gefunden, die ich auf mein Skript übertragen kann. Ich muss aber auch gestehen, dass meine Programmerkenntnisse überschaubar sind. :frowning:

Das Problem liegt in den Zeilen 122 bis 124. Über einen Hinweis zur Lösung würde ich mich sehr freuen. Danke im Voraus.

Da müsstest Du eher das Skript im

 Tag einfügen und posten statt eine Grafik, nur mit der Grafik, die nur ein Teil anzeigt wird, kann man letztlich nur raten.

Entschuldigung, ich hab jetzt mal das gesamte Skript mit dem PHP Tag eingefügt.

<?

//Wechselt zum Hauptmenü, um die Information zum Telefonat anzuzeigen
//IPS_RunScript(18590);
//IPS_RunScript(45252);

$rufnummer = getvalue(17201);

//Zurücksetzen des Anrufernamens
$LASTCALLNAME = "unbekannt";
SetValueString(41942, $LASTCALLNAME);

   if ( $rufnummer == "" )
		{
      $Anrufer_Name = "unbekannt";
      SetValueString(17201, "unbekannt");
   	}
		else
		{
		// ------------------------------------------------------------------------------------------------------------
		// Vergleichen der Telefonnummer mit den Einträgen aus der SQLite Datenbank "informationen" Tabelle "Kontakte"
		// ------------------------------------------------------------------------------------------------------------
		//echo "Telefonnummer zum Abgleich: ".$NUMMER."
";

      //Verbindung zur Datenbank aufbauen
		$db = mysqli_connect("192.168.2.25:3307", "xxx", "xxx", "IPS"); 

      //SQL Abfrage
		$result = $db->query("SELECT * FROM Kontakte WHERE (Telefon_Arbeit_Fest LIKE '$rufnummer') or (Telefon_Arbeit_Mobil LIKE '$rufnummer') or(Telefon_Privat_1 LIKE '$rufnummer') or(Telefon_Privat_2 LIKE '$rufnummer') or(Telefon_Privat_Mobil LIKE '$rufnummer')LIMIT 0, 1");

		// Ergebnis ausgeben
    	while($data = mysqli_fetch_array($result))
    	{
        $LASTCALLNAME = utf8_decode($data['Vorname'])." ".utf8_decode($data['Nachname']);
    	}

		//Variable schreiben
      SetValueString(41942, $LASTCALLNAME);

		//Verbindung zur Datenbank trennen
		$db->close();
		//-------------------------------------------------------------------------------------------------------------

		//-------------------------------------------------------------------------------------------------------------
		//Suche der Telefonnummer im Internet unter www.dasoertliche.de, wenn kein Name vorher in der Datenbank gefunden wurde
   	// ------------------------------------------------------------------------------------------------------------
		if ($LASTCALLNAME == "unbekannt")
			{
			
      	$ergebnis = "unbekannt";
      	SetValueString(13621,"unbekannt");
			//$link = "http://www.klicktel.de/inverssuche/index/search?method=searchSimple&_dvform_posted=1&phoneNumber=".$rufnummer;
			$link = "http://www1.dasoertliche.de/Controller?ciid=&district=&kgs=&plz=&zvo_ok=&form_name=search_inv&buc=&kgs=&buab=&zbuab=&page=5&context=4&action=43&ph=".$rufnummer."&image=";
			//echo $link."
";
			WWWReader_SetPage(44483,$link);
			IPS_ApplyChanges(44483);
			WWWReader_UpdatePage(44483);

			$ergebnis = GetValueString(13621);
			if ( strlen($ergebnis) > 45)
				{
				//echo strlen($ergebnis)."
";
				$ergebnis = substr($ergebnis, 0, 45)." ...";
				}
			if ($ergebnis != "No valid Rules defined! Please check your Tags!")
				{
         	SetValueString(41942, $ergebnis);
				}
				echo $ergebnis."
";
			}
		//-------------------------------------------------------------------------------------------------------------
		}
	//-------------------------------------------------------------------------------------------------------------
	//Eintragen der Rufnummer in die Datenbank informationen.db in die Tabelle anruferliste
   // ------------------------------------------------------------------------------------------------------------

	//Zeilenumruch bei echo
   define ('lf',"<br>
");
   
   //Setzen der Variablen für die letzten 10 Anrufer
   $Anrufer_1 = "";
   $Anrufer_2 = "";
   $Anrufer_3 = "";
   $Anrufer_4 = "";
   $Anrufer_5 = "";
   $Anrufer_6 = "";
   $Anrufer_7 = "";
   $Anrufer_8 = "";
   $Anrufer_9 = "";
   $Anrufer_10 = "";

	//Übernahme der Daten des letzten Anrufs
	$nummer = GetValueString(17201);
    $name = GetValueString(41942);
    $datum = GetValueString(10821);
    $zeit = GetValueString(26981);

 	//Verbindung zur Datenbank aufbauen
 	$db = mysqli_connect("192.168.2.25:3307", "xxx", "xxx", "IPS"); 

	//Letzten Anruf in die anruferliste der Datenbank schreiben
	$sth=$db->query("insert into Anruferliste values('$nummer', '$datum', '$name', '$zeit')");


	//Anzeigen, wie viel Zeilen die Tabelle anruferliste hat
	$sth=$db->query("select count(*) as c from Anruferliste");
	//1 zeile holen
	$result=$sth->fetch_assoc();
	$count =$result['c'];
	echo "Habe jetzt $count zeilen in der Tabelle".lf;

	//Letzten 10 Eintragungen der Tabelle anruferliste ausgeben
   for ($c=1; $c < 11; $c++)
      {
		if ($count-$c >=0)
		   {
			$sth=$db->prepare("select * from Anruferliste limit $count-$c, 1");
            $sth->execute();
            $result=$sth->fetchAll(PDO::FETCH_ASSOC);
        $Inhalt = "Anrufer_".$c;
			foreach ($result as $entry)
				{
            	//$spacer = 34 - strlen($entry['Telefonnummer']);
				$$Inhalt = str_pad($entry['Datum'],10).str_pad($entry['Zeit'],7).str_pad($entry['Telefonnummer'],17).$entry['Name'];
   			
				}
			//echo strlen($entry['Telefonnummer']);
      	}
      echo $Inhalt."  ".$$Inhalt."    ".$c.lf;
      }

	//Verbindung zur Datenbank trennen
	$sth->closecursor();
	$db=null;

   //Schreiben der Variablen zur Anzeige
	SetValueString(44949,$Anrufer_1);
	SetValueString(22423,$Anrufer_2);
	SetValueString(50885,$Anrufer_3);
	SetValueString(10737,$Anrufer_4);
	SetValueString(57162,$Anrufer_5);
	SetValueString(31310,$Anrufer_6);
	SetValueString(17775,$Anrufer_7);
	SetValueString(17007,$Anrufer_8);
	SetValueString(32778,$Anrufer_9);
	SetValueString(35250,$Anrufer_10);

	
	//-------------------------------------------------------------------------------------------------------------

	//-------------------------------------------------------------------------------------------------------------
	//Ansage des Anrufers mit Nummer oder mit Name über Amazon Alexa
   // ------------------------------------------------------------------------------------------------------------
   $name = getvalue(41942);
   $text = "Der Anrufer ist ".$name;
   ECHOREMOTE_TextToSpeech(48541, $text);
    
  // ------------------------------------------------------------------------------------------------------------
 	
	//-------------------------------------------------------------------------------------------------------------
	//Sendet eine Information über Prowl aufs iPhone über den Anrufer
   // ------------------------------------------------------------------------------------------------------------
 	//IPS_RunScript(28177);
   // ------------------------------------------------------------------------------------------------------------



?>

Hallo,

ich vermute, das das prepare() in Zeile 122 fehlschlägt und daher false zurück liefert. Und daher schlägt Zeile 123 fehl (weit eine Variabke von Typ bool ja keinen Member Execute hat).
ich glaube kaum, das das die korrekte SQL-Sytax ist: „… limit 9-2, 1…“
mache die Berechnung vorher oder so "… limit " . ($count-$c). „, 1…“
demel

Vielen Dank für den Hinweis!

Ich habe es mir auch noch einmal angeschaut und nachdem die Versuche in der Umstellung im Syntax mit dem zusammengesetzten String nicht geholfen haben, habe ich es nun einfach über eine query Anweisung gelöst. Über die prepare Anweisung war es mir dann doch zu kompliziert.