好像 $db->prepare() 返回错误,所以你的 $stmt 变量不是真的 PDOStatement 宾语。使用 $db->errorInfo() 看看出了什么问题。如果已设置适当的属性,也可以将它放到try-catch块中(参见 错误和错误处理 )。
$db->prepare()
$stmt
PDOStatement
$db->errorInfo()
要查看您的连接是否正常,您还可以使用try-catch:
try { $db = new PDO($dsn, $user, $password); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); }