Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 03-01-2020, 10:30
baerlinerbaer
 Registrierter Benutzer
Links : Onlinestatus : baerlinerbaer ist offline
Registriert seit: Jan 2020
Beiträge: 5
baerlinerbaer befindet sich auf einem aufstrebenden Ast
Standard Auswertung Abfrage per PDO / Erstellung Array

Hallo,

ich habe im letzten Jahr die Betreuung einer Homepage übernommen. Diese ist zum Teil noch mit mysql_query-Anweisungen programmiert, so dass der Server noch immer auf PHP 5.6 läuft (und somit unnötig Kosten für den Support anfallen). Um endlich den Server auf PHP 7.x umzustellen, bin ich derzeit dabei die Scripte auf PDO umzustellen. Das hat zum Teil auch schon problemlos funktioniert. Eines der Scripte macht mir aber nun Probleme und ich kann irgendwie auch nach langer Suche keinen Fehler finden. Daher hoffe ich, dass hier einmal jemand drüber schauen und mir möglicherweise den "Wald" zeigen kann, denn ich "vor lauter Bäumen" nicht sehe. Die MySQL-Abfrage ergibt auf jeden Fall ein Ergebnis, so dass das Problem in den PDO-Anweisungen liegen muss.

Bislang sieht das Script wie folgt aus (die Ausgabe in dem Fall von mir vereinfacht):

PHP-Code:
$link mysql_connect($sHost$sUser$sPass);
mysql_select_db($sDBName$link);
$sql1 "SELECT * FROM `" $table "` WHERE `index` = " $_REQUEST['id'];
$erg1 mysql_query($sql1$link) or die("Fehler: " .mysql_error());
$result1[0] = mysql_fetch_array($erg1);
echo 
$result1[0]["kreis"]; 
Ergebnis:
Berlin

Mit PDO sieht das Script nun bislang so aus:

PHP-Code:
$pdo2 = new PDO(sprintf('mysql:host=%s;dbname=%s'$sHost$DBName), $sUser$sPass);
$utf8 $pdo2->prepare("SET NAMES UTF8");
$result_check $utf8->execute();
$sql1 "SELECT * FROM `" $table "` WHERE `index` = " $_REQUEST['id'];
$statementbb     $pdo2->prepare($sql1);
$erg1              $statementbb->execute();
if(
$statementbb->rowCount() > 0) {
            while(
$result1 $statementbb->fetch()) {
               
print_r($result1);
            }
        } else {
          echo 
'there are no result';
        } 
Ergebnis ist hier:
there are no result

Das bedeutet, dass er im PDO $statementbb scheinbar keinerlei Datensatz ablegt. Die Frage, die ich mir nicht beantworten kann, ist nun, warum das so ist (denn die SQL-Abfrage gibt einen Datensatz zurück, wie man bei der alten Ausgabe sehen kann).

Ich würde mich sehr freuen, wenn da mal jemand drüberschauen und mir ggf. auf die Sprünge helfen könnte.

Gruß
Baerlinerbaer

Geändert von baerlinerbaer (04-01-2020 um 16:40 Uhr)
Mit Zitat antworten