Это 12:30, и я кодировал 9 часов подряд. Мне действительно нужно, чтобы этот проект был выполнен, но MySQL вошел в мой крайний срок. Не могли бы вы изучить этот фрагмент для меня и посмотреть, сможете ли вы узнать, что не так?
Запрос PHP/MySQL
$q = $this->db->query("SELECT * FROM bans WHERE ip='".$ip."'");
Сохраняет следующую ошибку...
Ошибка MYSQL [6 октября 2010 г., 23:31 CDT]
У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '* FROM bans WHERE ip =' 206.53.90.231 '' в строке 1 (1064)
Я не вижу ничего плохого в запросе. Я даже пробовал разные методы включения переменной $ip, но безрезультатно.
EDIT:
Чтобы добавить сюда, столбец ip в моей базе данных является varchar (255).
РЕДАКТИРОВАТЬ 2:
Вот весь затронутый код. Имейте в виду, что все это в классе. Если я что-то упустил, дайте мне знать.
Линия из другой функции
if($this->isBanned($_SERVER['REMOTE_ADDR'])===true) { return json_encode(array('error'=>'You are banned from this ShoutBox.')); }
Затронутая функция
function isBanned($ip) {
$q = $this->db->query("SELECT * FROM bans WHERE ip='".$ip."'"); $num = $this->db->affected_rows;
if($num>0) { $row = $this->db->fetch_array($q); if(($row['expires'] < time()) && ($row['expires'] !== 0)) { $this->unbanUser($ip,'internal'); return false; } return true; } return false;
}
Функция unbanUser
function unbanUser($ip,$t='box') {
$q = $this->db->query("SELECT * FROM bans WHERE ip='".$ip."'"); $num = $this->db->affected_rows; if($num>0) { $q = $this->db->query("DELETE * FROM bans WHERE ip='".$ip."'");
return (($t=='box') ? json_encode(array('status'=>'removed')) : true); } else { return (($t=='box') ? json_encode(array('error'=>'Unable to locate the user.')) : true); }
}