решил я в следующем проекте вместо всех php-db-классов заюзать PDO. пытаюсь сделать что то локально, использую примеры из мануала. запись в таблицу получилась, а вот чтение вызывает падение апача. (XAMPP => Apache 2.2.11 + MySQL 5.1.30 (Community Server) + PHP 5.2.8 ) не пойму что у меня не так.
| Код | $user = 'root'; $pass = ''; try { $db = new PDO('mysql:host=localhost;dbname=test3', $user, $pass, array( PDO::ATTR_PERSISTENT => true )); //$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING ); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $db->setAttribute(PDO::ATTR_CASE, PDO::CASE_NATURAL); $db->query('SET NAMES utf8'); } catch (PDOException $e) { print "Error!: " . $e->getMessage() . "<br/>"; die(); }
// запись работает $count = $db->exec('INSERT INTO messages VALUES ( null, "'.$_SESSION['user'].'", "'.$_POST['message'].'" )'); $db->exec($sql);
// при чтении падает апач $sql = 'SELECT * FROM messages WHERE message_id > '.$_GET['id']; foreach ($db->query($sql) as $row) { print $row['username'] . "\t"; print $row['message'] . "\t"; print $row['message_id'] . "\n"; }
// так тоже падает $sql = 'SELECT * FROM messages WHERE message_id > :mess_id'; $sth = $db->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY)); $sth->execute(array(':mess_id' =>$_GET['id'])); $res = $sth->fetchAll();
|
в чём тут может быть дело?
спасибо
|