2013-07-16 3 views
0

У меня проблемы с получением if ($ stmt-> errorCode() == 0) {в моем коде для работы. Если я сделаю поиск с номером билета, который находится в базе данных, он покажет его, но если я сделаю поиск со случайным числом, которого нет в базе данных, он не покажет сообщение об ошибке, которое не было найдено.Stmt-> errorCode не работает

 <?php 
require("db.php"); 
$error_message=""; 
if (isset($_POST['submit'])){ 
if(empty($_POST['term'])) 
{ 
$error_message="Please enter a Ticket Number."; 
} 
else 
{ 
$query = "SELECT department, subject, message FROM supporttickets Where ticketnumber LIKE :term"; 
$stmt = $db->prepare($query); 
$stmt->execute(array(':term' => $_POST['term'])); 

if($stmt->errorCode() == 0) { 
while (list($department,$subject,$message) = $stmt->fetch(PDO::FETCH_NUM)) { 
echo htmlentities($department); 
} 
}else{ 

$error_message="no ticket found."; 
} 

} 
} 

?> 

ответ

0

Ваша проблема заключается в том, что вы на самом деле не echo ИНГ выход. Это просто присваивает переменной:

$error_message="no ticket found."; 

что вы хотите:

$error_message="no ticket found."; 
echo $error_message; 

Или может быть просто:

echo "no ticket found."; 
0

Вы не нужны никакие коды ошибок здесь

<?php 
require("db.php"); 
$data = array(); 
if(!empty($_GET['term'])) 
{ 
    $query = "SELECT department, subject, message FROM supporttickets 
       WHERE ticketnumber = ?"; 
    $stmt = $db->prepare($query); 
    $stmt->execute(array($_GET['term'])); 
    $data = $stmt->fetchAll(); 
} 

foreach ($data as $row) 
{ 
    echo htmlspecialchars($row['department']); 
} 
if (!$data) 
{ 
    echo "Please enter valid Ticket Number."; 
} 

Пара ошибок также исправлены.

+0

привет спасибо за помощь, ребята, но я получаю это взаправду, даже если номер билета находится в базе данных (пожалуйста, введите действительный номер билета.) – mrbrin

+0

вы должны использовать метод GET в своей форме для поиска, а не POST –