我的SQL语法有问题。 非工作代码:
$showdata = $db->prepare("SELECT * FROM adherence WHERE dateandtime='$chosendate' AND lastname='$lastname'");
工作代码1:
$showdata = $db->prepare("SELECT * FROM adherence WHERE dateandtime='$chosendate'");
工作代码2:
$showdata = $db->prepare("SELECT * FROM adherence WHERE lastname='$lastname'");
单独 - 代码有效,但使用AND时,我没有得到数据库的结果。有什么想法吗?
修改
$showdata = $db->prepare("SELECT * FROM adherence WHERE dateandtime= :chosendate AND lastname= :lastname");
$showdata->bindParam(':chosendate', $chosendate);
$showdata->bindParam(':lastname', $lastname);
$showdata->execute();
$rowas = $showdata->fetch();
foreach ($showdata as $rowas){
echo '<div class="twenty name">', $rowas["lastname"], $rowas["firstname"], '</div>';
}
ECHO'ing $ choosendate和$ lastname就在剧本之上。结果
答案 0 :(得分:1)
我认为您在查询的逻辑上犯了一个错误,也许没有任何一行满足这两个条件。除此之外,您应该正确使用Prepared Statement
:
$showdata = $db->prepare("SELECT * FROM adherence WHERE
dateandtime= :chosendate AND lastname= :lastname");
$showdata->bindParam(':chosendate', $chosendate);
$showdata->bindParam(':lastname', $lastname);
$showdata->execute();