해당 ID를 찾을 때 부울 값 isHere를 true (1)로 설정해야하는 프로젝트에서 작업 중입니다. 그러나 데이터베이스를 업데이트 할 수없는 것 같습니다. 그래도 데이터베이스에서 선택할 수 있습니다.
두 가지 문제가 있습니다. 먼저:
$handle = @fopen("../smartriders.txt", "r");
if ($handle)
{
while (($smartRider = fgets($handle, 255)) !== false)
{
if($update = $conn->query("UPDATE members SET isHere = 1 WHERE SmartRiderID = ?", $smartRider))
{
print("update successful");
}
}
if (!feof($handle)) {
echo "Error: unexpected fgets() fail\n";
}
fclose($handle);
}
그러면 경고가 표시됩니다.
경고 : mysqli :: query ()는 매개 변수 2가 정수, 14 행의 index.ph에 주어진 문자열 일 것으로 예상합니다.
14 행 :
if($update = $conn->query("UPDATE members SET isHere = 1 WHERE SmartRiderID = ?", $smartRider))
두 번째 문제 : 데이터베이스에있는 smartRider를 수동으로 입력해도 아무것도 업데이트되지 않습니다.
어떤 도움을 주시면 감사하겠습니다.
mysqli_query
매뉴얼 을 참조하면 이 함수의 두 번째 인수가입니다 int $resultmode
.
int
보세요 -그렇습니다 . 그리고 그 목적은 반환 된 결과의 구조를 정의하는 것입니다. 따라서에 전달 $smartRider
하는 query()
것은 쓸모 가 없습니다 .
query
함수 는 준비된 문에서 작동하지 않습니다 .
준비된 진술은 prepare()
다음과 같습니다.
$stmt = $mysqli->prepare('UPDATE members SET isHere = 1 WHERE SmartRiderID = ?');
$stmt->bind_param('s', $smartRider);
$res = $stmt->execute();
execute()
확인 결과는 http://php.net/manual/en/mysqli-stmt.execute.php 를 참조 하십시오 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다