我收到以下错误消息:
警告:PDO :: __ construct()要求参数4为数组,字符串在第2行的C:\ wamp \ www \ MyProjects \ GhislainPOO \ personnages.php中给出。没有密码需要,我想知道它是什么数组在这里意味着什么?
致命错误:在第3行的C:\ wamp \ www \ MyProjects \ GhislainPOO \ personnages.php中的非对象上调用成员函数query()是$ bdd而不是对象,尽管我使用“new” PDO“?
PHP
<?php
$bdd= new PDO ('localhost', 'POO', 'root', '');
$bdd->query( "SELECT * FROM jeux_combats");
$result = $bdd->query( "SELECT * FROM jeux_combats");
while ($donnee = $result->fetch()) {
echo '<p>'.'le personnage'.$donnee['nom'].'a une force de'.$donnee['forceperso'].'</p>';
}
?>
答案 0 :(得分:0)
请阅读手册:http://php.net/manual/en/pdo.construct.php
应该是这样的:
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
关于你的第二个问题。修复第一个问题后,错误应该消失。无论如何......如果您担心即使在解决第一个问题后第二个错误也会再次出现,您可以检查$bdd
是否为null
。类似的东西:
if($bdd != null){
if($result = $bdd->query( "SELECT * FROM jeux_combats")){
while ($donnee = $result->fetch(PDO::FETCH_ASSOC)) {
echo '<p>'.'le personnage'.$donnee['nom'].'a une force de'.$donnee['forceperso'].'</p>';
}
}
}
您的案例中的整个代码将是:
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
try {
$bdd = new PDO($dsn, $user, $password);
if($bdd != null){
if($result = $bdd->query( "SELECT * FROM jeux_combats")){
while ($donnee = $result->fetch(PDO::FETCH_ASSOC)) {
echo '<p>'.'le personnage'.$donnee['nom'].'a une force de'.$donnee['forceperso'].'</p>';
}
}
}
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}