php 버전에 따라서 퀴리가 달라져야 하는 것일까요? ㅜㅜ 채택완료
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'] 등 연관 배열 키로만 안전하게 접근할 수 있습니다.
// 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'] . " "; echo "제목: " . $row11['wr_subject'] . " "; echo "wr_1: " . $row11['wr_1'] . " "; } else { echo "데이터를 찾을 수 없습니다."; } ?> chatgpt 답변입니다.
답변에 대한 댓글 2개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인