php - 将单个 SQL SELECT 语句查询结果分配给 PHP 变量

标签 php mysql variables select

您好,我有一个网站可以接收汽车品牌并生成与数据库相对应的汽车 ID 结果。虽然有许多解决方案可用于将 sql 查询结果存储到变量,但在这种情况下它似乎不起作用。

我已经在数据库中尝试了 sql 语句,它使用 1 个结果输出,这是正确的。

<?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' ";

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

    $caridrow = mysql_fetch_object($caridresult);

    $carid = $caridrow['carid'];

    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 />';
?>

出现错误时,“Content carid is”处显示空白结果。浏览论坛后,变量 $carid 似乎没有任何值,我可能推断错误了。

回显结果:

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

最佳答案

显然,在使用 var_dump 调试 Chris 所述的问题后,问题缩小到由 mysql_fetch_object($caridresult); 收集的 NULL 值。由于数据库连接使用 @$dbcnx = new mysqli('localhost','values','values','values'); 数据库类检索数组值是错误的。因此,解决方案是 mysqli_fetch_array

这些代码可能对尝试调试的人有帮助:

<?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 )
      {
        // if they are in the database register the user id
        echo '<br>Hello more than 1 <br>';  
      }

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


    $caridrow = mysqli_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 />';
?>

特别感谢 Chris 帮助查找错误!

关于php - 将单个 SQL SELECT 语句查询结果分配给 PHP 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40270468/

相关文章:

php - 仅加载数据库中的新行

JavaScript 函数变量

java - 无法访问对象子类的变量? (Java/安卓)

php - 查询在 phpmyadmin 中运行良好,但在脚本中运行不正常

php - Codeigniter mysql 按位运算符

php - 带连接表的 Doctrine 查询构建器 ManyToMany

php - 如何在简单的 php 函数中使用 "Dependency Injection",我应该打扰吗?

mysql - 如何从 UNION 查询中获取 "remove duplicates"

php - 无法在表jquery mobile上显示来自mysql的数据

ruby-on-rails - 使用正则表达式从文件中提取环境变量