我有一個問題,從我的SQL語句。當我回應結果時,會出現重複結果(2個相同的結果)。MySql的重複結果php
這是我下面的代碼:
$stmt = $DB_con->prepare("SELECT * FROM applicantpersonaldetails apd "
. "LEFT JOIN employementdetails ed ON apd.ApplicantID = ed.ApplicantID "
. "LEFT JOIN sourceoffunds sof ON apd.ApplicantID = sof.ApplicantID "
. "LEFT JOIN existingbankproducts ext ON apd.ApplicantID = ext.ApplicantID "
. "WHERE apd.AccountID ='{$accountId}' AND applicantType ='main';");
$stmt->execute();
if ($stmt->rowCount() > 0) {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
extract($row);
echo $row['EmploymentStatus'];
?>
<?php
}
} else {
?>
<div class="">
<div class="alert alert-warning">
<span class="glyphicon glyphicon-info-sign"></span> No Data Found ...
</div>
</div>
<?php
}
?>
**警告**:使用PDO時,您應該使用[prepared statements](http://php.net/manual/en/pdo.prepared-statements.php)使用佔位符值並提供任何用戶數據作爲單獨的參數。在此代碼中,您可能會遇到嚴重的[SQL注入漏洞](http://bobby-tables.com/)。切勿使用字符串插值或連接,而應使用[準備語句](http://php.net/manual/en/pdo.prepared-statements.php),並且絕對不要將'$ _POST'或'$ _GET'數據直接放入您的查詢。有關此問題和其他問題的指導,請參閱[PHP正確方法](http://www.phptherightway.com/)。 – tadman
您的數據中可能有重複的行,或者由於連接而導致行重複。沒有看到你的數據,這是不可能的。在MySQL工作臺或MySQL控制檯中將您的查詢拆分爲更小的部分,直到您看到哪個關係或表是問題。 – Cfreak
我很好奇你爲什麼在這裏使用extract()。它不會對您的問題造成影響,但在while循環的範圍中沒有必要也沒有幫助。 – Difster