여기 내가하고있는 일이 있습니다.MySQL 쿼리가 무엇을 반환하는지 확인하는 데 문제가 있음
- $ get_version이있는 URL에 '버전'값이 있는지 확인하고 있습니다.
- 데이터베이스에서 최신 버전을 가져 와서 기본 변수로 설정하십시오.
- URL 변수가 좋은 경우 데이터베이스가 있는지 확인한 다음 적절한 변수를 설정하십시오.
- 존재하지 않는 경우 위의 기본값을 사용하십시오.
항상 "잘못된 쿼리 섹션"으로 이동합니다. 내 쿼리가 잘못되었거나 if 문이 작동하지 않습니다.
여기 내 코드가 있습니다. 또한, 그것을하는 더 깨끗한 방법이 있습니까?
// Check if there's a version in URL. If not, set to empty.
$get_version = isset($_GET['version']) ? $_GET['version'] : '';
// Set defaults if nothing in URL
$query = "SELECT * FROM sn_hockey_versions ORDER BY version_id DESC LIMIT 1";
mysqli_query($db, $query) or die('Error querying database.');
$result = mysqli_query($db, $query);
while ($row = mysqli_fetch_array($result)) {
$newest_version_id = $row['version_id'];
$newest_sections = $row['sections'];
}
if (!empty($get_version) && preg_match('/^[0-9.]*$/', $get_version)) {
$query = "SELECT version_id, sections FROM sn_hockey_versions WHERE version = '".$get_version."'";
mysqli_query($db, $query) or die('Error querying database.');
$result = mysqli_query($db, $query);
if ($row = mysqli_fetch_array($result)) {
$set_version = $row['version_id'];
$v_sections = $row['sections'];
$test = "IT WORKS!!!!";
}
else {
$set_version = $newest_version_id;
$v_sections = $newest_sections;
$test = "Bad query";
}
}
else {
$set_version = $newest_version_id;
$v_sections = $newest_sections;
$test = "Set default";
}
mysql 함수는 실패시 부울 false를 반환합니다. 당신은 그걸 확인하는 것을 결코 신경 쓰지 않습니다. 그리고 어떤 행과도 매치/변경하지 않는'select' 또는'update' 쿼리는 실패가 아니라는 것에주의하십시오. 그것은 아무 것도 성취하지 못한 성공적인 질의입니다. –