我在获取"调用未定义方法PDO::execute()在C:'xampp'htdocs'bookmarks'index.php第5行"时遇到了麻烦
<?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,所以我对这个概念没有最好的把握。
function addBookmark($url, $conn){
$stmt = $conn->prepare('INSERT INTO entries (url) VALUES (?)');
$stmt->execute(array($url));
}
连接字符串似乎有点错误。
'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));
我不知道确切的,但我创建连接字符串的方式是
mysql:host=localhost;database=database
mysql:host=localhost;dbname=database
我不知道是否有其他的解决方法。我忘了它是database还是dbname