未捕获的PDOException:预期条件

时间:2019-05-24 09:10:40

标签: php sql sql-server sqlsrv

单击按钮时,我的faktura.php脚本将触发。应该发生的是使用SQL从数据库中获取数据并回显该数据。但是在PDO的Execute函数上,出现错误“在期望条件的上下文中,在'AND'附近指定了非布尔类型的表达式”。发生。

我已经尝试过在SQL中运行查询,并且该查询可以运行,但是在脚本中却无法运行。

还可以指定在使用其他脚本登录该站点之前,我使用过一次database.php。

faktura.php
<?php 
session_start();
require("config/database.php");
$fakturaView = "myView";

if(isset($_POST['fakturaBtn'])){

    $fakturaNr = 50163;
    $userID = 144;

    $stmt = $pdo->prepare('SELECT * FROM :fakturaView WHERE :fakturaNr AND :userID');
    $stmt->execute(['fakturaView' => $fakturaView, 'fakturaNr' =>  $fakturaNr, 'userID' => $userID]); //Where the exception occurs
    $faktura = $stmt->fetch();

    echo $faktura['userID'];
    echo $faktura['fakturaNr'];
}
?>
database.php
<?php
$host = 'myhost';
$db   = 'mydb';
$user = 'myuser';
$pass = 'mypass';

$dsn = "sqlsrv:Server=$host;Database=$db";
//$dsn = "sqlserv:host=$host;dbname=$db;charset=$charset";
$options = [
    PDO::ATTR_ERRMODE              => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE   => PDO::FETCH_ASSOC,
    PDO::SQLSRV_ATTR_ENCODING      => PDO::SQLSRV_ENCODING_UTF8,
];
try {
     $pdo = new PDO($dsn, $user, $pass, $options);
} catch (\PDOException $e) {
     throw new \PDOException($e->getMessage(), (int)$e->getCode());
}
?>

0 个答案:

没有答案