Использование подготовленных заявлений mysql_query()
осуждается. Например PDO:
<?php
$db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$user_ref = $_GET['ref'];
$stmt = $db->prepare("SELECT user_id FROM users WHERE user_name = :user_ref AND user_ref < 5 LIMIT 1");
$stmt->bindValue(':user_ref', $user_ref, PDO::PARAM_INT);
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
$row_count = $stmt->rowCount(); // Returned rows..
foreach($rows as $row) {
// I think this doesn't need any explanation
}
?>
Ваш вопрос сказал, что вы только хотите, чтобы отрицать user_ref когда она равна 5. Почему в запросе, вы используете 'user_ref <5'? Разве это не должно быть 'user_ref = 5' – invisal
Привет Ким Бум. ;-). Вы действительно получаете mysql-ошибку 1064? MySQL не «отрицает» как таковой, но он может возвращать нулевые строки, как это будет делать с вашим текущим запросом, если user_ref = 5 (потому что ваш запрос будет только найти результаты, если user_ref НИЖЕ 5. – Martin