如何解决此问题
可捕获的致命错误:PDOStatement类的对象不可能 转换为字符串。
我的PHP代码:
$a = $_POST['id'];
$b = $_POST['title'];
$c = $_POST['cat'];
$d = $_POST['cop'];
$e = $_POST['stat'];
$sql = "INSERT INTO books (book_id, book_title, book_category, no_copies, status) VALUES (:a,:b,:c,:d,:e)";
$a = $db->prepare($sql);
$a->execute(array(':a'=>$a, ':b'=>$b, ':c'=>$c, ':d'=>$d, ':e'=>$e));
header('Location: books.php');
答案 0 :(得分:2)
您覆盖变量$a
$a = $_POST['id']; // assign here
$a = $db->prepare($sql);// override here
尝试提供不同的名称
$smt = $db->prepare($sql);
$smt->execute(array(':a'=>$a,':b'=>$b,':c'=>$c,':d'=>$d,':e'=>$e));
header("location: books.php");
答案 1 :(得分:0)
为变量使用有意义的名称(例如,$ stmt而不是$ a,这可以避免冲突)
$stmt = $db->prepare($sql);
$stmt->execute(array(':a'=>$a,':b'=>$b,':c'=>$c,':d'=>$d,':e'=>$e));