我无法解决这个问题而无法在第5行和第34行调用C:\ xampp \ htdocs \ bookmarks \ index.php中的未定义方法PDO :: execute() ;
<?php
function addBookmark($url, $conn){
$conn->prepare('INSERT INTO entries (url) VALUES (:url)');
$conn->execute(array(':url' => $url));
}
try {
$conn = new PDO('mysql:dbname=bookmarks;host=localhost', 'username', 'password');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if(isset($_POST['bookmark'])) {
addBookmark($_POST['bookmark'], $conn);
}
$results = $conn->query('select * from bookmarks.entries');
} catch (exception $e) {
die($e->getMessage());
}
?>
我今天刚开始使用PDO,所以我对这个概念没有最好的把握。任何帮助将不胜感激。
答案 0 :(得分:2)
连接字符串似乎有点不对。
'mysql:bookmarks'
还应该有一个主持人;而bookmarks
就是我认为的数据库名称!
'mysql:dbname=bookmarks;host=localhost'
$conn->prepare('INSERT INTO entries (url) VALUES (:url)');
$conn->execute(array(':url' => $url));
需要重写如下:
$stmt = $conn->prepare('INSERT INTO entries (url) VALUES (:url)');
$stmt->execute(array(':url' => $url));
答案 1 :(得分:2)
function addBookmark($url, $conn){
$stmt = $conn->prepare('INSERT INTO entries (url) VALUES (?)');
$stmt->execute(array($url));
}
答案 2 :(得分:1)
我不确切知道,但我创建连接字符串的方式是
mysql:host=localhost;database=database
mysql:host=localhost;dbname=database
我不知道是否还有其他解决方法。我忘了它的数据库还是dbname