Ich versuche, eine API zu erstellen, um Daten aus mySQL zurückzugeben. Ich versuche immer noch den PDO zu erreichen. Ich habe die folgende Abfrage, die alle Zeilen aus der DB zurückgeben sollte, basierend auf einem einzelnen Parameter, aber ich habe festgestellt, dass es oft 1 weniger zurückgibt als zurückgegeben werden sollte. Wenn es 2 Zeilen gibt, gibt es 1 zurück, wenn es 1 Zeile gibt, gibt es nichts zurück.PDO-SQL-Abfrage, die weniger Zeilen als erwartet zurückgibt
Ich habe einen Screenshot der Datenbankergebnisse beigefügt.
Irgendwelche Vorschläge würden geschätzt.
[![<?php
// required header
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
// include database and object files
include_once '../config/database.php';
include_once '../objects/casualty.php';
// instantiate database and casualty object
$database = new Database();
$db = $database->getConnection();
// initialize object
$casualty = new casualty($db);
// set ID property of record to read
$casualty->id = isset($_GET\['id'\]) ? $_GET\['id'\] : die();
// query categorys
$stmt = $casualty->cemetery();
$num = $stmt->rowCount();
// check if more than 0 record found
if($num>0){
// products array
$casualtys_arr=array();
$casualtys_arr\["records"\]=array();
// retrieve our table contents
// fetch() is faster than fetchAll()
// http://stackoverflow.com/questions/2770630/pdofetchall-vs-pdofetch-in-a-loop
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
// extract row
// this will make $row\['name'\] to
// just $name only
extract($row);
$casualty_item=array(
"ID" => $ID,
"Filename" => $fldgraphicname,
"Surname" => $fldsurname,
"FirstNameInitial" => $fldfirstnameinitial
);
array_push($casualtys_arr\["records"\], $casualty_item);
}
echo json_encode($casualtys_arr);
}
else{
echo json_encode(
array("message" => "No Casualties found.")
);
}
?>
<?php
class casualty{
// database connection and table name
private $conn;
private $table_name = "tblcasualty";
// object properties
public $id;
public $fldgraphicname;
public $fldsurname;
public $fldfirstnameinitial;
public function __construct($db){
$this->conn = $db;
}
public function cemetery(){
// query to read single record
$query = "SELECT *
FROM
tblnames
WHERE
tblcemetery_ID = ?
ORDER BY ID
";
$stmt = $this->conn->prepare($query);
// bind id of product to be updated
$stmt->bindParam(1, $this->id, PDO::PARAM_INT);
// execute query
$stmt->execute();
// get retrieved row
$row = $stmt->fetch(PDO::FETCH_ASSOC);
// set values to object properties
$this->fldgraphicname = $row\['fldgraphicname'\];
$this->fldsurname = $row\['fldsurname'\];
$this->fldfirstnameinitial = $row\['fldfirstnameinitial'\];
return $stmt;
}
}
?>][1]][1]