source

PHP 오류: "참조 기준으로 매개 변수 2를 전달할 수 없습니다."

lovecheck 2022. 11. 19. 11:43
반응형

PHP 오류: "참조 기준으로 매개 변수 2를 전달할 수 없습니다."

이 PHP 오류에 대한 도움이 필요합니다.이 오류는 잘 모르겠습니다.

치명적 오류: /web/studd/openup/inactivatedsession에서 참조로 매개 변수 2를 전달할 수 없습니다.13행의 php

<?php

error_reporting(E_ALL);

include('connect.php');

$createDate = mktime(0,0,0,09,05,date("Y"));
$selectedDate =  date('d-m-Y', ($createDate));

$sql = "UPDATE Session SET Active = ? WHERE DATE_FORMAT(SessionDate,'%Y-%m-%d' ) <= ?";
$update = $mysqli->prepare($sql);
$update->bind_param("is", 0, $selectedDate);  //LINE 13
$update->execute();

?>

이 오류는 무엇을 의미합니까?이 오류를 수정하려면 어떻게 해야 합니까?

오류는 두 번째 인수가 변수에 대한 참조가 될 것으로 예상됨을 의미합니다.

변수가 아니라 값 0의 정수를 전달하기 때문에 해당 오류가 발생합니다.

이것을 회피하려면 , 다음의 순서에 따릅니다.

$a = 0;
$update->bind_param("is", $a, $selectedDate);  //LINE 13

어떤 일이 일어나고 있는지 알고 싶은 경우, 단순히 문제를 해결하는 것이 아니라Fatal errorhttp://php.net/manual/en/language.references.pass.php 를 참조해 주세요.

첫째, 당신은 그것을 사용해서는 안 된다.DATE_FORMAT날짜를 비교하고 싶은 경우DATE_FORMAT더 이상 날짜가 아닌 문자열로 변경합니다.

UPDATE Session 
SET Active = ? 
WHERE SessionDate <= ?

둘째, 값을 변수에 먼저 저장하고 매개 변수에 전달합니다.

$createDate = mktime(0,0,0,09,05,date("Y"));
$selectedDate =  date('d-m-Y', ($createDate));
$active = 0;
$sql = "UPDATE Session SET Active = ? WHERE SessionDate <= ?";                                         
$update = $mysqli->prepare($sql);
$update->bind_param("is", $active, $selectedDate);  
$update->execute();

언급URL : https://stackoverflow.com/questions/13105373/php-error-cannot-pass-parameter-2-by-reference

반응형