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 5, 7 차이에 대한 설명이 잘되어있는 블로그 첨부합니다.
http://blog.naver.com/simmani5/221302630714
무조건 fail로 뜨진 않고 주의 등으로 뜨는 오류들도 있습니다.
mysql_num_rows 대신
$total_count = $result2->num_rows 로 사용해 보세요
답변을 작성하시기 전에 로그인 해주세요.