PHP - 如何从数据库中只获取1个值?

时间:2018-05-30 09:14:34

标签: php mysql mysqli

我有一个product列,其中包含id, name, price, desc列。但我只需要显示搜索到的产品的price

例如,当用户输入0001时,查询应该执行并返回值为$ {00的$price

$sqlprice = $DB->Prepare("SELECT price FROM product WHERE id = '0001'");
$sqlprice -> Execute();
$result = $sqlprice->get_result();
$price = $result->fetch_assoc();

但是,$price变量中没有任何值。我在代码中做错了什么?我搜索了很多线程,但它似乎没有解决我的问题。

6 个答案:

答案 0 :(得分:0)

假设$sqlprice是mysqli的一个实例,我建议使用$sqlprice->fetchAll(PDO::FETCH_ASSOC)

答案 1 :(得分:0)

您可以逐步检查问题在哪里

if ($sqlprice = $DB->Prepare("SELECT price FROM product WHERE id = '0001'")) {
    if($sqlprice->execute()) {
        $result = $sqlprice->get_result();
        $price = $result->fetch_assoc();
    } else {
        die($sqlprice->error)
    }
} else {
    die($DB->error);
}

答案 2 :(得分:0)

使用$price[0]$price['price']访问您的价格。如果$ price应为空,那么您的SQL查询不成功。你应该相应地处理这个案子。

我建议您熟悉var_dump()print_r()方法以进行调试:)

答案 3 :(得分:0)

$result->fetch_assoc()会返回 assoc iative数组,您可以像$array["name"]一样访问该数组。

如果查询正确,您应该通过访问$price["price"]来获取价格。但是如果$ price中没有任何值(=== null),那么查询的执行就会出现问题/数据库中没有任何值。

您还可以尝试以下方法(假设您使用的是PDO)并查看是否有效:

$sql = 'SELECT price FROM product WHERE id = "0001"';
foreach ($conn->query($sql) as $row) {
    echo $row['price'];
}

对于mysqli:

$sql = 'SELECT price FROM product WHERE id = "0001"';
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
    echo $row['price'];
}

答案 4 :(得分:0)

我真的不知道为什么......但经过多次尝试,这对我有用。

$sqlprice= "SELECT price FROM product WHERE id='0001'";
        $rs = $DB -> Execute($sqlprice);
        while ($row = $rs -> FetchRow()) {
          $price= $row["price"];
        }

答案 5 :(得分:0)

我假设0001是您的product表中产品的ID。如果是这样,则可以尝试以下查询:

$this->db->select('price');
$this->db->where('id','id_entered_by_user');
$query = $this->db->get('product');

您的结果将存储在$query中,您可以通过打印print_r($query->result());

进行检查

让我知道此查询是否对您有用。