내 프로그램에서 if! isset 문을 사용할 때 변수가 설정되었음을 인식하지 못합니다. 변수 $ q가 설정되지 않았다면 mysqli 데이터베이스에서 쿼리를 얻도록 설정했다. 이 쿼리는 데이터베이스에서 최신 데이터 항목을 다시 가져옵니다. 이 데이터는 $ row라는 변수와 같습니다. $ row 변수는 나중에 웹 페이지에 표시되는 레코드를 검색하기 위해 호출됩니다. 문제는 .php 파일이 마지막으로 실행 된 때부터 $ q가 설정 되었더라도 if 문이 다시 실행된다는 것입니다 (페이지를 새로 고치거나 다시로드 할 때). 코드는 다음과 같습니다.Isset이 mysqli_query와 동작하지 않습니다
$db_user = "root";
$db_pass = "";
$db_name = "music_reviews_database";
$db_host = "localhost";
$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
if (!isset($q)) {
$q = mysqli_query($conn,
"SELECT album.Album,
artist.ArtistsName,
datereviewed.DateReviewed,
features.Features,
genre.Genre,
rating.Rating,
songname.SongName,
link.link,
songname.ID,
comments.Comments
FROM songname
INNER JOIN album ON album.ID = songname.ID
INNER JOIN artist ON artist.ID = songname.ID
INNER JOIN datereviewed ON datereviewed.ID = songname.ID
INNER JOIN features ON features.ID = songname.ID
INNER JOIN genre ON genre.ID = songname.ID
INNER JOIN rating ON rating.ID = songname.ID
INNER JOIN link ON link.ID = songname.ID
INNER JOIN comments ON comments.ID = songname.ID
ORDER BY DateReviewed DESC LIMIT 1");
$row = mysqli_fetch_array($q);
}
코드가 이렇게되어야합니다.
$q = mysqli_query($conn,
"SELECT album.Album,
artist.ArtistsName,
datereviewed.DateReviewed,
features.Features,
genre.Genre,
rating.Rating,
songname.SongName,
link.link,
songname.ID,
comments.Comments
FROM songname
INNER JOIN album ON album.ID = songname.ID
INNER JOIN artist ON artist.ID = songname.ID
INNER JOIN datereviewed ON datereviewed.ID = songname.ID
INNER JOIN features ON features.ID = songname.ID
INNER JOIN genre ON genre.ID = songname.ID
INNER JOIN rating ON rating.ID = songname.ID
INNER JOIN link ON link.ID = songname.ID
INNER JOIN comments ON comments.ID = songname.ID
ORDER BY DateReviewed DESC LIMIT 1");
$row = mysqli_fetch_array($q);
file_put_contents(data.php, return var_export($row,true));
if (file_exists(data.php)) {
$row = include(data.php);
}
$ q를 어디에서 초기화합니까? – Michael
당신은 언급하지 않는 이유는 $ 변수를 그 이유는 그 인식하지 – Abhishek
오, 그래 처음으로 isset를 사용하려고했던 이유는 단지 한 번 쿼리를 초기화하는 방법이있을 것입니다. 만약 새로운 데이터가 데이터베이스에 삽입되면 쿼리는 내가 원하는 데이터를 최신 데이터로 덮어 쓸 것입니다. –