SQL WHERE条件

时间:2015-12-03 18:31:07

标签: php sql pdo

我的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>';
                }

编辑2 的 DATABASE: enter image description here

ECHO'ing $ choosendate和$ lastname就在剧本之上。结果

enter image description here

1 个答案:

答案 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();