这是一个奇怪的问题。我在名为父母的数据库表中有一个名为状态的字段。通过一个 php 脚本,我输入了一堆状态为“活动”的父母。后来,我使用 phpmyadmin 将其中两个更改为“休眠”状态。当我运行查询状态为活动的行时,phpmyadmin 和我的 php 脚本中的一切都很好。当我运行查询询问状态为休眠的行时,phpmyadmin 返回状态为休眠的两行,但我的 php 脚本不返回任何行。以下是相关的代码片段:
// get value of radio button for $active
$active = stripslashes(strip_tags($_POST['active']));
if (!$active) {
$active = 'active';
}
// Similar process for value of $myOrderby,
// which can have value of 'name' or 'email' and works fine
$query = "SELECT
Parents.parentID,
Parents.parentName,
Parents.parentEmail,
Students.nickName,
Students.Lname
FROM Parents, Students
WHERE Parents.parentID=Students.parentID
AND Parents.status=:active
ORDER BY $myOrderby ASC" ;
$stmt = $db->prepare($query);
$stmt->bindValue(':active', $active, PDO::PARAM_STR);
try {
$stmt->execute();
$affected_rows = $stmt->rowCount();
if ($affected_rows > 0) {
// various actions...
}
} catch (PDOException $ex) {
$message = $ex->getMessage() ;
$filename = 'admin-parents' ;
notifyMe($message, $filename) ;
}
然而,奇怪的是,如果我再次使用 phpmyadmin 将状态为“休眠”的两行更改回“活动”状态(不在输入框中使用任何标点符号),那么这两行不会出现在 php 结果中所有活跃的父母。这就是让我开始整个探索的问题。
澄清:myphpadmin 查询总是为这两行返回正确的结果,无论是当状态为“活动”还是当状态为“休眠”时。(我通过 myphpadmin 更改它们。)但是,无论它们的状态如何,php 脚本都不会返回这两行。