在phpMyAdmin中查询
SELECT id
FROM `column`
WHERE `id` = "RM3zc7e8"
LIMIT 1
按预期查找结果。但是在函数中使用PDO时
function checkID($sid) {
try {
$conn = new PDO('mysql:host=' . HOST . ';dbname=' . DATABASE, USER, PASSWORD);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT id FROM column WHERE id = :sID");
$stmt->execute(array('sID' => $sID ));
$result = $stmt->fetch();
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
return $result;
}
我无法让它返回任何东西。有什么想法吗?
答案 0 :(得分:3)
由于您的变量名称错误,因此无效。比较以下
function checkID($sid) {
^
VS
$stmt->execute(array('sID' => $sID ));
^
您的函数中没有名为$sID
的变量,因此没有值绑定到您的语句。设为$sid
。
答案 1 :(得分:-1)
PHP PDO和mysql无法选择带字母的id
实际上他们可以。
你的代码没问题。
你的问题不是真正的问题,因为它是由测试中的一些错字或错误引起的。您第一次测试时可能没有数据
另一个答案是错误的,因为PDO双向工作。检查并查看。
实际上,如果PDO无法找到具有该名称的占位符,则会抛出错误。