2015-10-29 4 views
0

по-видимому, это работает для моего учителя, но для меня это дает ошибку Фатальная ошибка: Вызов неопределенной метода PDO :: Ошибка()Фатальная ошибка: Вызов неопределенной метода PDO :: Ошибка()

код в вопросе:

<!DOCTYPE html> 
<html> 
<head> 
<title>Mini-Chat</title> 
<meta charset="UTF-8"> 
<style> 
form 
{ 
text-align: center; 
} 
</style> 
<body> 

<form action="minichat-post.php" method ="post"> 
<p> 
    <label for="username">Username</label> : <input type="text" name="username" id="username"/><br> 
    <label for="message">Message</label> : <input type="text" name="message" id="message"/><br> 
    <input type="submit" value="Send"/> 
</p> 
</form> 
<?php 
try 
{ 
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', ''); 
} 
catch(Exception $e) 
{ 
die('Error :'.$e->getMessage()); 
} 
$response = $bdd->query('SELECT username, message FROM minichat ORDER BY id DESC LIMIT 0, 10'); 
while ($data = $response->fetch()) 
{ 
echo '<p><strong>' . htmlspecialchars($data['username']) . '</strong> : ' . htmlspecialchars($data['message']) . '</p>'; 
} 
$response->closeCursor(); 
?> 
</body> 
</html> 

более конкретно это дает мне линию ошибки 31, которая является цикл в то время как:

while ($data = $response->fetch()) 

свихнулся здесь, как он работал один раз уже с небольшой поправкой, но теперь я не могу показаться, чтобы выяснить, где T o сделать это.

EDIT: Ошибка теперь отсутствует, но она не сохранит никаких сообщений в базе данных и не отобразит их после нажатия Отправить. здесь файл после PHP:

<?php 
try 
{ 
$bdd = new PDO('mysql:host=localhost;dbname=minichat', 'root', ''); 
} 
catch(Exception $e) 
{ 
die('Error :'.$e->getMessage()); 
} 

$req = $bdd->prepare('INSERT INTO minichat (username, message VALUES (?, ?)'); 
$req->execute(array($_POST['username'], $_POST['message'])); 
header('Location: ./mini-chat[conflit].php'); 
?> 

ответ

0

Также проверьте на пост

<?php 
if(isset($_POST['username']) && isset($_POST['message'])) { 
    try 
    { 
    $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', ''); 
    } 
    catch(Exception $e) 
    { 
    die('Error :'.$e->getMessage()); 
    } 
    $response = $bdd->query('SELECT username, message FROM minichat ORDER BY id DESC LIMIT 0, 10'); 
    while ($data = $response->fetch()) 
    { 
    echo '<p><strong>' . htmlspecialchars($data['username']) . '</strong> : ' . htmlspecialchars($data['message']) . '</p>'; 
    } 
    $response->closeCursor(); 
} 
?> 
+0

хорошо, что заставило ошибку уйти, но он не сохранит никаких сообщений msg или пользователей, я получил 2 поля в моем phpmyadmin имя пользователя и сообщение имя пользователя задано уникальным ... любые идеи? –

+0

После сообщения isit ?? –

+0

sry? Я добавил вашу строку, из-за которой сама ошибка исчезла, но она не отображает никаких чатов или имен пользователей, которые я ввел. и в базе данных он не отображается ни после того, как я положил некоторые тесты в –

Смежные вопросы