PHP отправить с проблемой PDO SQL - PullRequest
1 голос
/ 02 сентября 2011

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

Есть ли кто-нибудь, кто может мне помочь?Любая подсказка будет оценена!

Q1: что не так?Q2: как вообще можно отследить ошибку?

<?php
// Check if add button active, start this
if (isset($_POST['create'])) {
 $new=htmlspecialchars($_POST['newgroup']);
 $sql = "INSERT INTO contactgroups (status, gr_name) VALUES(1, : new )";
 $sql->bindvalue( ': new', $new);
 $sql->execute();
 $arr = $sql->errorInfo();
 echo $arr;
 echo  "<meta http-equiv=\"refresh\" content=\"0;URL=groups.php\">";
}
?>

<form id="group-in" method="post" action="groups.php">
Add new Distribution group: <input type="text" name="newgroup" placeholder="name..."> <input type="submit" name="create" value="Create new">
Rename groupname: <input type="text" value="<?php echo $result['gr_name']; ?>"> <input type="submit" name="rename" value="Rename">
</form>

приходит $ _POST, запускается SQL, но после bindPARAM / bindVALUE ничего не приходит ...

1 Ответ

1 голос
/ 02 сентября 2011

Вы никогда не готовите свой SQL-оператор выше.

Для запуска вам сначала нужно будет инициализировать БД и создать новый экземпляр PDO.Предполагая, что вы сделали это раньше:

<?php
// Check if add button active, start this
if (isset($_POST['create'])) {
 $new=htmlspecialchars($_POST['newgroup']);
 $sql = "INSERT INTO contactgroups (status, gr_name) VALUES(1, : new )";
 $stmt = $db->prepare($sql);
 $stmt->bindvalue( ': new', $new);
 $stmt->execute();
 $arr = $stmt->errorInfo();
 echo $arr;
 echo  "<meta http-equiv=\"refresh\" content=\"0;URL=groups.php\">";
}
?>

Вы можете обернуть бит функции / кода с помощью оператора try / catch и включить обработку исключений с помощью PDO, чтобы лучше понять возможные ошибки в будущем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...