Я пытаюсь запросить мою базу данных в PDO и получить вывод в форме. Однако инструкция выборки не работает. КодQuerying Mysql с PDO fetch возвращает false
try {
include '../../config/database.php';
$database = new Database();
$db = $database->getConnection();
//prepare query
$query = "select
payment_id, payment_supplier, payment_ref, payment_cost_rating, payment_amount
from
payments
where
payment_id = ?
limit 0,1";
$stmt = $db->prepare($query);
//this is the first question mark
$stmt->bindParam(1, $_REQUEST['myData']);
//execute our query
if($stmt->execute()){
var_dump($stmt->fetch());
//store retrieved row to a variable
$row = $stmt->fetch(PDO::FETCH_ASSOC);
//values to fill up our form
$payment_id = $row['payment_id'];
$payment_supplier = $row['payment_supplier'];
$payment_ref = $row['payment_ref'];
$payment_cost_rating = $row['payment_cost_rating'];
$payment_amount = $row['payment_amount'];
}else{
echo "Unable to read record.";
}
}
var_dump ($stmt); prints
object(PDOStatement)#3 (1) { ["queryString"]=> string(157) "select payment_id, payment_supplier, payment_ref, payment_cost_rating, payment_amount from payments where payment_id = ? limit 0,1" }
Но fetch()
всегда возвращает ложь. Это включенный файл database.php, если он помогает
class Database{
// database credentials
private $host = "localhost";
private $db_name = "test-project";
private $username = "root";
private $password = "";
public $conn;
// get the database connection
public function getConnection(){
$this->conn = null;
try{
$this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name, $this->username, $this->password);
}catch(PDOException $exception){
echo "Connection error: " . $exception->getMessage();
}
return $this->conn;
}}
Что мне здесь не хватает?
«еще» утверждение никогда не вызывается, как $ stmt-> выполнить; работает. Однако вызов fetch() не работает –
Вы ограничиваете результаты только одной записью, тогда вы увидите возвращенную запись в var_dump (.. fetch) или нет записей, если запрос возвращает пустой результат. И следующие вызовы fetch() будут сбой после var_dump (.. fetch) всегда. Если fetch всегда false, я советую вам проверить ваш запрос и результат в любой программе sql-client. –