PHP:简单的 PDO 循环不起作用?

直接退出

只是解析一个文件并构建一个查询,但$row只返回一个结果,我所做的每个查询的结果是hold get A result。

while (!feof($f)) {

    $contents = '';
    $contents = fgets($f);
    $p = explode(" ", $contents);

    $req = "SELECT id_product from ps_product WHERE `reference`='".$p[1]."'";


    $rs = $dbh->prepare($req);
    $rs->execute();

    $row  = $rs->fetch();

    print_r($row);
}

我最后只得到一个结果

我的调试是这样的:

M0852 

PDOStatement Object ( [queryString] => SELECT id_product from ps_product WHERE `reference`='M0852 ' ) 

M0850 

PDOStatement Object ( [queryString] => SELECT id_product from ps_product WHERE `reference`='M0850 ' ) 

M0850 

PDOStatement Object ( [queryString] => SELECT id_product from ps_product WHERE `reference`='M0850 ' ) 

M0851 

PDOStatement Object ( [queryString] => SELECT id_product from ps_product WHERE `reference`='M0851 ' ) 

M0851 

PDOStatement Object ( [queryString] => SELECT id_product from ps_product WHERE `reference`='M0851 ' ) 

M0855 

PDOStatement Object ( [queryString] => SELECT id_product from ps_product WHERE `reference`='M0855 ' ) 

M0849 

PDOStatement Object ( [queryString] => SELECT id_product from ps_product WHERE `reference`='M0849 ' ) 

数组([id_product] => 2662 [0] => 2662)

当我期望获得一个带有每个查询结果的数组时。

你的常识

只有文件中的最后一行末尾没有 LF 字符。
使用 trim() 将其剥离

$req = "SELECT id_product from ps_product WHERE `reference`=?";
$rs = $dbh->prepare($req);
while (!feof($f)) {

    $contents = trim(fgets($f));
    $p = explode(" ", $contents);

    $rs->execute([$p[1]]);
    $row  = $rs->fetch();

    print_r($row);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章