테스트 사이트 - 개발 중인 베타 버전입니다

php 버전에 따라서 퀴리가 달라져야 하는 것일까요? ㅜㅜ 채택완료

개성인 4개월 전 조회 1,127

1개의 데이타만 뽑아서 wr_id, wr_subject 등의 값을 추출하려고 하는데요, 동일한 내용을 2군데에서 사용하고 잇는데요,  php 7.4.9 환경에서 잘 되고 있는데 php7.4 에서는 안되는데 쿼리를 어떻게 고쳐야 할까요?

 

$link_forview = "12345"   ;

$sql11 = "select wr_id, wr_subject, wr_1 from g5_write_hbp_board where wr_link2 = '{$link_forview}' limit 1"  ;

          $result11 = $mysqli->query($sql11);                         
             
         $row11 = mysqli_fetch_array($result11); 

 

이때 $row11['wr_subject']  $row11['wr_id']  등의 값이 추출되지 않네요 초보자라서 좀 서툴지만 양해부탁합니다
 

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트

PHP 7.4.9에서 잘 작동하던 코드가 PHP 7.4 (다른 서버 환경?)에서는 동작하지 않는 문제는 PHP 버전 차이보다는, MySQLi 설정, 연결 방식, 또는 쿼리 실행 방식 문제일 가능성이 높습니다.
아래에서 하나씩 점검해드릴게요.

 

✅ 우선 기본 확인: $mysqli 객체가 제대로 연결되어 있는지?
$mysqli = new mysqli(...); 와 같은 연결이 정상적으로 이루어졌는지 먼저 확인이 필요합니다.


if ($mysqli->connect_errno) {
    echo "MySQL 연결 실패: " . $mysqli->connect_error;
    exit;
}

핵심 문제: mysqli_fetch_array() 대신 mysqli_fetch_assoc() 사용 권장

$row11 = mysqli_fetch_array($result11);
이 코드는 기본적으로 연관배열 + 숫자 인덱스 배열을 모두 포함하지만, 일부 설정에서는 제대로 동작하지 않을 수 있어요.
 

? 해결 방법:
$row11 = mysqli_fetch_assoc($result11);
이렇게 하면 ['wr_subject'], ['wr_id'] 등 연관 배열 키로만 안전하게 접근할 수 있습니다.

 

<?php
$link_forview = "12345";

// DB 연결
$mysqli = new mysqli("localhost", "db_user", "db_pass", "db_name");
if ($mysqli->connect_errno) {
    echo "MySQL 연결 실패: " . $mysqli->connect_error;
    exit;
}

// 쿼리 실행
$sql11 = "SELECT wr_id, wr_subject, wr_1 FROM g5_write_hbp_board WHERE wr_link2 = '{$link_forview}' LIMIT 1";
$result11 = $mysqli->query($sql11);

if ($result11 && $row11 = mysqli_fetch_assoc($result11)) {
    echo "ID: " . $row11['wr_id'] . "<br>";
    echo "제목: " . $row11['wr_subject'] . "<br>";
    echo "wr_1: " . $row11['wr_1'] . "<br>";
} else {
    echo "데이터를 찾을 수 없습니다.";
}
?>

chatgpt 답변입니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

개성인
4개월 전
소중한 시간을 내어 제게 답변주셔서 정말 고맙습니다~^^ 답변내용을 참조하여 시도하여 본바 성공적으로 해결되었습니다~ 다시한번 정말 고맙습니다^^ 꾸벅
간장게장같은남자
4개월 전
챗지피티 활용하시는것도 좋은 방법입니다 ^^ 맹신은 하지마시구요!

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인