Возможный дубликат:
Как успешно переписать старый код mysql–php с устаревшими функциями mysql_ *?
Я публиковал какой-то вопрос на этом сайте, и всякий раз, когда я мог публиковать хотя бы один человек, он мог выйти и попросить меня прекратить использовать функцию mysql_, потому что она больше не поддерживается, и я не знал, что мне сказали использовать PDO: я был пытаясь понять, как это работает, чтобы я преобразовал все мои коды в него, но теперь применил его в коде и, похоже, не работает, хотя соединительная часть работает. вот что я пробовал, он работает с функцией mysql_, но не с PDO: любая помощь будет оценена.
<?php #database connection $con = new PDO('mysql:host=localhost;dbname=adnan;charset=UTF-8','root',''); $sql = $con->query("SELECT * FROM m1debtors INNER JOIN m1dtrans ON m1debtors.name = m1dtrans.user"); while ($row=$sql->fetchAll(PDO::FETCH_ASSOC)){ $ name = $row[' name ']; $ user = $row[' user ']; } // The JSON standard MIME header. header('Content-type: application/json'); $array = array('name'=>$name, 'user'=>$user); echo json_encode($array); ?>
Преобразование вашего кода в PDO – довольно простая задача.
Единственное, что вам действительно нужно, это прочитать примеры на странице руководства (и понять их).
Поскольку вам нужна только одна строка в форме ассоциативного массива, fetch()
может это сделать уже.
$row=$sql->fetch(PDO::FETCH_ASSOC); // The JSON standard MIME header. header('Content-type: application/json'); echo json_encode($row);
Я бы рекомендовал написать класс, который упростит использование PDO.
Тогда вы можете сделать что-то вроде этого …
$database->query('SELECT id FROM users WHERE name = :name'); $database->bind(':name', 'Jenny'); $row = $database->single();
Взгляните на этот учебник для написания собственного класса.