php5.6에서 7.4로 변경했을 때 규칙

php5.6에서 7.4로 변경했을 때 규칙

QA

php5.6에서 7.4로 변경했을 때 규칙

본문


<?php
function new_count($table_id){ 
    $intime = date("Y-m-d H:i:s", time() - (int)(60 * 60 * 24)); // 오늘
    $tmp_write_table .= "g5_write_$table_id"; // 오늘과 글쓴 날짜를 비교 
    $sql2 = "select wr_datetime from $tmp_write_table where wr_datetime >= '$intime'"; 
    // 새로운 글이 몇개 있는지 확인합니다. 
    $result2 = sql_query($sql2); 
    $total_count = mysql_num_rows($result2); 
    if ($total_count > 0) { 
        $str_cnt .= "".$total_count.""; 
        return $str_cnt; 
    } else { 
        $str_cnt .= ""; 
        return $str_cnt; 
    } 
} 
?>
------------------------
<?php $aaa = "<span class='title_count'>".new_count(notice)."</span>;" ?>
------------------------
<?php if ((new_count(notice) > 0) || (new_count(free) > 0)) { echo "<img src='".G5_URL."/img/new.gif' board='0'>"; } ?> 

 

24시간 내 새글이 있을경우 갯수를 알려주는건데, php 5.6에서는 잘나오는데 php 7.4에서는 화면이 $aaa나 echo 이후부터 화면이 안나옵니다.

 

따옴표와 괄호등 PHP의 변경된 규칙 문제 같은데 봐도 잘모르겠습니다;

코드 수정 또는 조언 부탁드립니다.

 

이 질문에 댓글 쓰기 :

답변 3

notice, free 를 따옴표로 감싸세요

그리고 문자열과 변수는 확실히 구분하는게 좋습니다.

"g5_write_$table_id";
이런식의 코딩습관은 아주 안좋은 습관입니다.

"g5_write_".$table_id;

라고 하시든가

"g5_write_{$table_id}";

로 해야합니다.

7.x 버전에서 아마

"g5_write_$table[id]"

이런 코딩은 에러가 날겁니다.


<?php
function new_count($table_id){ 
    $intime = date("Y-m-d H:i:s", time() - (int)(60 * 60 * 24)); // 오늘
    $tmp_write_table .= "g5_write_{$table_id}"; // 오늘과 글쓴 날짜를 비교 
    $sql2 = "select wr_datetime from {$tmp_write_table} where wr_datetime >= '{$intime}'"; 
    // 새로운 글이 몇개 있는지 확인합니다. 
    $result2 = sql_query($sql2); 
    $total_count = mysql_num_rows($result2); 
    if ($total_count > 0) { 
        $str_cnt .= "".$total_count.""; 
        return $str_cnt; 
    } else { 
        $str_cnt .= ""; 
        return $str_cnt; 
    } 
} 

echo new_count('notice');
?> 

바꿔봤는데 출력되다가 여전히 echo 부분에서 멈추네요 ㅠ
조언 감사합니다.

안녕하세요. 몰라무서워님이 잘 답변해주시기도 하였고

 

추가로 php 5, 7 차이에 대한 설명이 잘되어있는 블로그 첨부합니다.

http://blog.naver.com/simmani5/221302630714

 

무조건 fail로 뜨진 않고 주의 등으로 뜨는 오류들도 있습니다.

mysql_num_rows 대신

$total_count = $result2->num_rows 로 사용해 보세요

답변을 작성하시기 전에 로그인 해주세요.
전체 123,119 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT