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

vulvrdjw  于 2021-06-23  发布在  Mysql
关注(0)|答案(6)|浏览(363)

我有一张table product 有列的 id, name, price, desc . 但我只需要展示 price 搜索到的产品。
例如,当用户输入0001时,查询应该执行并返回一个值 $price 5.00美元。

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

然而 $price 变量中没有任何值。我在代码中做错了什么?我已经搜索了许多线索,但似乎没有一个答案,我的问题。

r7xajy2e

r7xajy2e1#

我真的不知道为什么…但这对我来说很有效,经过多次尝试。

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

ftf50wuq2#

$result->fetch_assoc() 返回一个关联数组,您可以像 $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'];
}
bqjvbblv

bqjvbblv3#

假设 $sqlprice 是我推荐使用的mysqli示例 $sqlprice->fetchAll(PDO::FETCH_ASSOC)

zfciruhq

zfciruhq4#

我想 0001 产品的id在您的 product table。如果是这样,则可以尝试以下查询:

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

您的结果将存储在 $query 你可以通过打印检查 print_r($query->result()); 让我知道这个问题是否对你有效。

scyqe7ek

scyqe7ek5#

访问您的价格 $price[0] 或者 $price['price'] . 如果$price应该为空,则您的sql查询不成功。你应该相应地处理这个案子。
我建议你熟悉一下 var_dump() 以及 print_r() 用于调试的方法:)

jyztefdp

jyztefdp6#

你可以一步一步地检查问题出在哪里

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);
}

相关问题