使用 PDO PHP 查询时不显示


No display when querying using PDO php

我正在尝试使用PHP构建一个表,其中包含一些来自mysql数据库的文本:

但是,当我回显表格时,页面显示为空白

这是我的代码

<!DOCTYPE html>
<html lang="en">
    <title>Pre Order</title>
</head>
<body>
<div class="page">
<?php 
include_once "connect.php";
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 
$conn2 = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 

$form=$_POST;
$a=$form['a'];
$b=$form['b'];
$c=$form['c'];
$accountnumber=$form['accountnumber']
$stmt = $conn->query("SELECT * FROM Contracts WHERE A='$a' AND B='$b' AND C='$c'");
$stmt2 = $conn2->query("SELECT * FROM Customers WHERE CustomerCode='$accountnumber'");
$data = '';
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
    while ($row2 = $stmt2->fetch(PDO::FETCH_ASSOC)) {

$data .= "<table>";
$data .= "<tr><td>Account Number: </td>";

echo $data;
}
}
?>
</div>
</body>
</html>

但是,当我删除 mysql 连接时,回声工作正常。

该文件是.php文件。

但是,如果没有看到更多代码,我就没有什么可以建议的了:

include_once "connect.php";
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$contracts = $conn->prepare('SELECT * FROM Contracts WHERE A = :a AND B = :b AND C = :c');
$contracts->bindParam(':a', $_POST['a']);
$contracts->bindParam(':b', $_POST['b']);
$contracts->bindParam(':c', $_POST['c']);
$contracts->execute();
$customers = $conn->prepare('SELECT * FROM Customers WHERE CustomerCode = :code');
$customers->bindParam(':code', $_POST['accountnumber']);
$customers->execute();
while ($customer = $customers->fetch(PDO::FETCH_ASSOC))
    print_r($customer);
while ($contract = $contracts->fetch(PDO::FETCH_ASSOC))
   print_r($contract);

一个连接,并确保正在准备和执行查询。我认为因为您没有这样做,所以单引号或无效字符会破坏您的查询。