我正在尝试使用 pdo 从 php 执行以下 sql:SELECT * FROM my_table WHERE name=?.
当我这样做时:
$sql = 'SELECT * FROM my__table WHERE name=?' ;
$stmt = $dbconn->prepare($sql);
$stmt->bindValue(1, $_POST['name'], PDO::PARAM_STR);
$stmt->execute();
我得到一个空的结果集。
当我这样做时:
$sql = 'SELECT * FROM my__table WHERE name=\''.$_POST['name'].'\'' ;
$stmt = $dbconn->prepare($sql);
$stmt->execute();
我得到了我需要的行。
“名称”列是一个 VARCHAR(32)。这个错误只发生在字符串上。当绑定参数是 sql INTEGER 时,一切都按预期工作。
我在 Ubuntu 上的 Apache 下使用 sqlite3、php 5.2.6。