我有一个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
变量中没有任何值。我在代码中做错了什么?我搜索了很多线程,但它似乎没有解决我的问题。
答案 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());
让我知道此查询是否对您有用。