2016-10-27 3 views
1

안녕하세요, 사용자가 웹 페이지에서 BRAND를 선택한 후 CarID를 쿼리하는 웹 사이트가 있습니다. 따라서 SELECT 쿼리가 실행되고 CarID 값이 PHP 변수에 전달됩니다. 그러나 현재 SQL 문을 실행하는 동안 오류가 없는데도 문제를 디버그하기 위해 사용하는 var_dump는 NULL 값을 제공합니다.PHP var_dump SQL 쿼리 후 NULL 오류

데이터베이스 테이블 : enter image description here

코드 :

<?php // register.php 
 
session_start(); 
 
include "dbconn.php"; 
 

 

 
$carcat = $_SESSION['selectedcarcat']; 
 
$carbrand = $_POST['carbrand']; 
 
$userid = $_SESSION['loginid']; 
 
$username = $_SESSION['loginname']; 
 
$startdate = $_POST['date1']; 
 
$enddate = $_POST['date2']; 
 
$pick = $_POST['pickuploc']; 
 
$return = $_POST['returnloc']; 
 
$calqty = 0; 
 

 

 
    $selcaridsql = "SELECT carid FROM cars WHERE brand='$carbrand' "; 
 
    
 
    echo $selcaridsql."<br>"; 
 

 
    $caridresult = $dbcnx->query($selcaridsql); 
 

 
    echo "<br>".var_dump($caridresult); 
 

 
    if ($caridresult->num_rows >0) 
 
     { 
 
     echo '<br>Hello more than 1 <br>'; 
 
     } 
 

 
    else 
 
    { 
 
     echo '<br>Hello less than 1 <br>'; 
 
    } 
 

 

 
    $caridrow = mysql_fetch_array($caridresult); 
 

 
    echo var_dump($caridrow)."<br>"; 
 

 
    $carid = $caridrow['carid']; 
 

 
    echo var_dump($carid)."<br>"; 
 
    
 
    if (!$caridresult) 
 
    { 
 
     $errmessage = "Your carid select query failed."; 
 
     echo "<script type='text/javascript'>alert('$errmessage');</script>"; 
 
    } 
 

 

 
    echo '<br>Debug 1 '; 
 
    echo '<br>The selected qty is ' 
 
     .$qtyresult1.'<br />'; 
 
    echo '<br>The calculated qty is ' 
 
     .$calqty.'<br />'; 
 
    echo '<br>The content carid is ' 
 
     .$carid.'<br />'; 
 
    echo '<br>The content userid is ' 
 
     .$userid.'<br />'; 
 
    echo '<br>The content start is ' 
 
     .$startdate.'<br />'; 
 
    echo '<br>The content end is ' 
 
     .$enddate.'<br />'; 
 
    echo '<br>The content pick is ' 
 
     .$pick.'<br />'; 
 
    echo '<br>The content return is ' 
 
     .$return.'<br />'; 
 
     echo '<br>The content carbrand is ' 
 
     .$carbrand.'<br />'; 
 
?>

결과 현재 출력 될 것입니다 :

SELECT carid FROM cars WHERE brand='Honda' 
 
object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(1) ["lengths"]=> NULL ["num_rows"]=> int(1) ["type"]=> int(0) } 
 

 
Hello more than 1 
 
NULL 
 
NULL 
 

 
Debug 1 
 
The selected qty is 
 

 
The calculated qty is 0 
 

 
The content carid is 
 

 
The content userid is 
 

 
The content start is 2016-10-28 
 

 
The content end is 2016-10-29 
 

 
The content pick is jurong 
 

 
The content return is bishan 
 

 
The content carbrand is Honda

쿼리가 데이터를 검색 할 수있는 것 같지만 왜 값이 NULL인지 알 수 없습니다. 데이터베이스에 직접 SQL 문을 시도하고 작동합니다.

감사합니다.

+0

양식은 어디에 있습니까? –

+0

var_dump ($ carbrand)에 적절한 값을 가지고 있는지 확인하십시오. – scaisEdge

+0

무엇이'$ dbcnx'이고 동일한 데이터베이스 추상화 레이어를 사용하는 대신 mysql_fetch_array를 호출하는 이유는 무엇입니까? –

답변

0

mysql_fetch_array을 사용하여 가져 오는 동안 귀하의 결과는 mysqli_query입니다. 결과를 가져 오는 데 mysqli_fetch_array을 사용해보십시오.

결과를 가져 오기 위해 DB 클래스 (`$ dbcnx-> query에 사용하는 것과 동일한 것)를 사용하는 것이 더 좋을 것입니다. 또는이 클래스에 그러한 메소드가 없다면 추가 할 수 있습니다 .

+0

감사합니다. 나는 결코 그것을 알아 채지 않을 것이다! mysql 대 mysqli 가져 오기 배열의 차이에 대한 몇 가지 문서가있을 수 있습니까? – Specs

+0

http://php.net/manual/en/book.mysqli.php 및 여기 http://php.net/manual/en/book.mysql.php를 참조하십시오. 이것은 또한 도움이됩니다 : http://stackoverflow.com/questions/548986/mysql-vs-mysqli-when-using-php – krasipenkov

+0

대단히 감사합니다! – Specs