2016-10-27 2 views
1

Привет, у меня есть сайт, который запрашивает CarID после того, как пользователь выбирает BRAND с веб-страницы. Поэтому запрос SELECT будет выполнен, и значение CarID будет передано переменной PHP. Однако в настоящее время var_dump, который я использую для отладки проблемы, дает значение NULL, даже если при выполнении инструкции SQL не возникает ошибки.PHP var_dump Ошибка NULL после SQL-запроса

База данных таблицы: 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

Ваш результат: mysqli_query, когда вы пытаетесь его получить, используя mysql_fetch_array. Попробуйте использовать mysqli_fetch_array для получения результата.

Но это будет лучше, если вы используете свой класс DB (тот же, что вы используете для запроса `$ dbcnx->) для получения результата, или если у этого класса нет такого метода, вы можете его добавить ,

+0

Спасибо! Я бы никогда этого не заметил! Возможно ли, что есть некоторая документация о различии в mysql vs mysqli fetch array? – 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

Смежные вопросы