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

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

QA

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

답변 1

사용 PHP 버전

7.4

본문

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

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 답변입니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 129,112
© SIRSOFT
현재 페이지 제일 처음으로