我在主页中的某个函数调用时执行了这个php案例。当我输入我的变量时:$ tutorReasonString =“我很好并且正在工作。”和$ clientReasonString =“我也很好,谢谢你问”,这里没有错。但是当我尝试使用pg_fetch_array()获取它们时,我得到返回的NULL值。
请注意,tutorabsence和clientabsence表没有与任何类型的SQL触发器连接,我只在另一个执行中为它们分配完全相同的id,这是从另一个表中使用php检索的。
case "absencePc":
$id = array_search(post("id"), $_SESSION["keyhash"]);
$tutorAbsSql = "SELECT reason FROM tutorabsence WHERE id='$id'";
$tutorReason = pg_query($tutorAbsSql);
if(pg_fetch_row($tutorReason) == NULL) {
$tutorStatus = "0";
$tutorReasonString = "";
} else {
$tutorStatus = "1";
// $tutorReasonString = "I'm working"; This works
// This returns null.
$tutorReasonFetch = pg_fetch_array($tutorReason);
$tutorReasonString = $tutorReasonFetch["reason"];
};
$clientAbsSql = "SELECT reason FROM clientabsence WHERE id='$id'";
$clientReason = pg_query($clientAbsSql);
if(pg_fetch_row($clientReason) == NULL) {
$clientStatus = "0";
$clientReasonString = "";
} else {
$clientStatus = "1";
// $clientReasonString = "I'm working"; This works
// This returns null.
$clientReasonFetch = pg_fetch_array($clientReason);
$clientReasonString = $clientReasonFetch["reason"];
};
$response[] = array("tutorReason" => $tutorReasonString,
"clientReason" => $clientReasonString,
"tutorStatus" => $tutorStatus,
"clientStatus" => $clientStatus);
echo json_encode($response);
break;
答案 0 :(得分:2)
你遇到的问题是你从1个结果中获取两次:
$tutorAbsSql = "SELECT reason FROM tutorabsence WHERE id='$id'";
$tutorReason = pg_query($tutorAbsSql);
if(($row = pg_fetch_row($tutorReason)) != false){
$tutorStatus = "1";
$tutorReasonString = $row[0];
print_r($row);
} else {
$tutorStatus = "0";
$tutorReasonString = "";
}
它在内部向前移动结果指针,然后pg_fetch_array()
获取下一个不存在的值。