Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php PDO查询不返回记录(有时)_Php_Mysql_Pdo - Fatal编程技术网

Php PDO查询不返回记录(有时)

Php PDO查询不返回记录(有时),php,mysql,pdo,Php,Mysql,Pdo,目前,我们正在检查一个PHP脚本,它是几年前由其他人(外部)设计的 脚本正在使用PDO,现在我有以下问题 数据库布局Loper表 id korte_tekst lengte type kg field1 price price_inc 79 766 500 TYPE1 60 Ja 40.70 49.11 80 760 270 TYPE_2 40

目前,我们正在检查一个PHP脚本,它是几年前由其他人(外部)设计的

脚本正在使用PDO,现在我有以下问题

数据库布局Loper

id    korte_tekst    lengte    type    kg    field1    price    price_inc
79    766            500       TYPE1   60    Ja        40.70    49.11
80    760            270       TYPE_2  40    Ja        23.97    23.97
当我在脚本/SQL下面运行时

$sql = 'SELECT price FROM loper WHERE id = 80';
$loper = $this->db->query($sql);

foreach($loper as $lop)
{
    echo 'Price' . $lop['price'];       
}
我没有得到任何结果,但在运行时

$sql = 'SELECT price FROM loper WHERE id = 79';
我真的把价钱要回来了

当在PHPMyAdmin中运行查询时,我会返回两个查询结果

编辑

$stmt = $this->db->prepare("SELECT price FROM loper WHERE id = :id");

$id = 80;
$stmt->bindParam(':id', $id);
$stmt->execute();

$data = $stmt->fetch(PDO::FETCH_ASSOC);
echo $data['price'];
上述方法也不起作用

编辑2

当使用下面的MySQLi查询时,我得到了正确的价格

 $con=mysqli_connect("localhost","user","pwd","database");
 $result = mysqli_query($con,"SELECT price FROM loper WHERE id = 80");
 mysqli_close($con);

while ($record = mysqli_fetch_assoc($result))
{
     print_r($record);
}
echo "Total records: " . mysqli_num_rows($result);

有错误吗?你检查错误日志了吗?尝试获取错误
$this->db->error()
当我使用ID=80数组([0]=>00000[1]=>[2]=>)时我得到的$this->db->errorInfo()当我使用79我得到数组([0]=>00000[1]=>[2]=>)PrijsIn本身时,这两个查询都是有效的,应该返回类似的结果。但是有东西告诉我query()方法可能是在代码库中的某个地方设置的自定义方法,它正在添加额外的条件(例如每个结果必须是某个类型的)。@Oldskool感谢您的回答。有办法检查这个吗?代码非常古老,由其他人编写,因此对我来说是个谜:)@PostMans是的,这只证实了我的怀疑,即
$this->db
中的任何内容都是PDO适配器的定制版本。你应该更仔细地检查。有错误吗?你检查错误日志了吗?尝试获取错误
$this->db->error()
当我使用ID=80数组([0]=>00000[1]=>[2]=>)时我得到的$this->db->errorInfo()当我使用79我得到数组([0]=>00000[1]=>[2]=>)PrijsIn本身时,这两个查询都是有效的,应该返回类似的结果。但是有东西告诉我query()方法可能是在代码库中的某个地方设置的自定义方法,它正在添加额外的条件(例如每个结果必须是某个类型的)。@Oldskool感谢您的回答。有办法检查这个吗?代码非常古老,由其他人编写,因此对我来说是个谜:)@PostMans是的,这只证实了我的怀疑,即
$this->db
中的任何内容都是PDO适配器的定制版本。你应该仔细检查一下。