Я хотел бы знать, как избежать строк в pdo. Я избегаю пружин, как в приведенном ниже коде, но теперь с pdo я не знаю, как это сделать
$username=(isset($_POST['username']))? trim($_POST['username']): ''; $previlage =(isset($_GET['previlage'])); $query ="SELECT * FROM site_user WHERE username = '".mysql_real_escape_string($_SESSION['username'])."' AND previlage ='Admin'"; $security = mysql_query($query)or die (mysql_error($con)); $count = mysql_num_rows($security);
Ну, вы можете использовать PDO :: quote , но, как сказано в своем собственном документе …
Если вы используете эту функцию для создания операторов SQL, настоятельно рекомендуется использовать PDO :: prepare () для подготовки операторов SQL с привязанными параметрами вместо использования PDO :: quote () для интерполяции ввода пользователя в инструкцию SQL.
В вашем случае это может выглядеть так:
$query = "SELECT * FROM site_user WHERE username = :username AND previlage = 'Admin'"; $sth = $dbh->prepare($query); $sth->execute(array(':username' => $_SESSION['username']) );
mysql_*
не будет работать в PDO. ЗАЧЕМ? Поскольку PDO не использует mysql для подключения к базам данных, поскольку для обработки данных PDO использует подготовленные инструкции, вы можете найти хороший учебник для этого здесь: pdo