2013-12-23 4 views
0

я использую эту конструкцию для проверки ошибки, почему оператор не выполняется:проверки п.д.о. ошибка заявления

$value1 = $username; 
$value2 = $firstname; 
$value3 = $lastname; 

$sql = "INSERT INTO table (row1, row2, row3) VALUES (?, ? , ?)"; 

try { 
    $stmt = $dbh->prepare($sql); 

    $stmt->bindParam(1, $value1); 
    $stmt->bindParam(2, $value2); 
    $stmt->bindParam(3, $value3); 

    $stmt->execute(); 
} catch(PDOException $e) { 
    $var .= $e->getMessage(); 
} 

include 'log.php'; 

log.php:

$logfile = fopen("logfile.txt", "a"); 
$error = date("d.m.Y H:i:s")." - ".$var.".\r\n"; 
fwrite($logfile, $error); 
fclose($logfile); 

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

+0

Можете ли вы показать свой $ sql? – raygo

+0

где pdo contructor? – Ricbermo

+0

Не могли бы вы опубликовать весь код? Что там, где определены $ sql, $ value1, $ value2 и $ value3 –

ответ

-1

Я понятия не имею, почему ошибки PDO привлекают столь пристальное внимание пользователей PHP. Вы никогда не увидели бы включения или манипуляции с изображениями так много кормящих. Но заявления PDO по какой-то причине всегда получают специальное обращение.

Несмотря на то, что ошибки PDO абсолютно ничего особенного не имеют. Это точно такая же ошибка, как и любая другая, и нет необходимости рассматривать PDO-ошибки каким-либо специальным способом. Если файл не найден - PHP будет регистрировать эту ошибку. Если запрос PDO завершится с ошибкой - PHP также зарегистрирует эту ошибку. Просто скажите PHP, чтобы это сделать.

ini_set('log_errors', 1); 

- это все, что вам нужно. Затем запустите свой код и зарегистрируйтесь с ошибкой

$sql = "INSERT INTO table (row1, row2, row3) VALUES (?, ? , ?)"; 
$stmt = $dbh->prepare($sql); 
$stmt->execute(array($username, $firstname, $lastname)); 
Смежные вопросы