내 진술은 다음과 같습니다. 이상한 준비 문 오류
$stmt = $this->db->prepare("
select q.id
from questions q
left outer join (
select max(chk_date) as questions_last_chk_date
FROM last_check_date
where user_id = ?
AND chk_token=?) lcd
on q.add_dt > lcd.questions_last_chk_date
WHERE q.author_id<>?
") or die($this->db->error);
$stmt->bind_param("isi", $_SESSION["userID"], "q", $_SESSION["userID"]) or die($stmt->error);
내가 오류 메시지 얻기이 질문에
1)을 가지고
치명적인 오류 :
이 오류가 발생하는 이유를 참조
에 의해 매개 변수 (3)를 통과 할 수 없습니다? BTW, 나는 last_check_date
테이블이 비어 있지만이 문제와 관련이 없다고 생각합니다.
2) Windows에서 오류 메시지 테이블 last_check_date
이 나타나지 않지만 오타가없고 테이블이 존재한다는 것을 100 % 알고 있습니다. Navicat - db amanger 응용 프로그램과 동일한 쿼리를 시도하고 결과를 얻었습니다. 하지만이 오류를 얻으려고 PHP를 시도 할 때. 원격 Linux 서버에서 작동하고 질문 1에서 오류 메시지가 표시됩니다. mysql 서비스를 다시 시작하려고 시도하고 다른 이름으로 이름을 바꾼 다음 이름을 이전 이름으로 다시 변경합니다. 성공하지 못했습니다! 어떻게 문제를 해결할 수 있습니까?
나는 MySQLi 전문가가 아니지만 정적 매개 변수를 쿼리에 바인딩 할 수 없다고 생각합니다. 내 눈이 완벽하게 합리적입니다. 따라서 매개 변수 3을 변수로 설정하고 전달하거나 매개 변수 3이 이미 이미 존재하도록 쿼리를 변경하십시오. – clentfort
@clentfort I gachu. 그러나 외부 조인을 사용하여이 작업을 수행 할 수 없습니다. 외부 조인에 대한 경험이 없습니다. 그게 왜 커뮤니티에 질문을 게시했는지 – heron