如何在使用PDO的WHERE之后使用两个参数进行选择?

问题描述 投票:-1回答:1

我尝试从数据库中选择数据,但是当WHERE之后有两个参数时,我无法获取它。

有效的代码:

$conn = null;
$host = 'localhost';
$db   = 'database';
$user = 'root';
$pwd  = 'root';

$auth = 'EP';
$nr = 2007;

try {
    $conn = new \PDO('mysql:host='.$host.';dbname='.$db, $user, $pwd);      
    $stmt = $conn->prepare('SELECT family FROM table WHERE nr = :nr');
    $stmt->execute(array('nr' => $nr));

    while($row = $stmt->fetch(PDO :: FETCH_ASSOC)) {
        echo '<pre>';
        print_r($row);
        echo '</pre>';
    }
}
catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

但是当我使用以下选择时,它不起作用:

SELECT family FROM table WHERE auth = :auth AND nr = :nr

我认为这是一个问题

    $stmt->execute(array('nr' => $nr));

当我执行以下操作时,我在屏幕上没有任何结果:

    $stmt->execute(array('nr' => $nr, 'auth' => $auth));

有人知道我在做什么错吗?

php select pdo
1个回答
0
投票

更改此

stmt->execute(array('nr' => $nr, 'auth' => $auth));

TO

$stmt->execute(array(':nr' => $nr, ':auth' => $auth));

:是一个很小的拼写错误,但PDO是严重的:(并且参数将为空。

© www.soinside.com 2019 - 2024. All rights reserved.