Я создал свой собственный шаблон mvc на основе стиля фреймворка codeigniter.Моя проблема сейчас заключается в том, что я хочу предотвратить внедрение SQL, и для этой цели я бы хотел использовать mysql_real_escape_string ().Но когда я его использую, он продолжает выдавать ошибки, так как у него явно нет «ссылки / источника» на базу данных?
Я получаю ошибку php:
Предупреждение: mysql_real_escape_string (): Не удается подключиться к локальному серверу MySQL через сокет '/var/lib/mysql/mysql.sock' (2) в /hsphere/local/home/../dev/simple_blog/models/users_model.phpв строке 8
Предупреждение: mysql_real_escape_string (): не удалось установить ссылку на сервер в /hsphere/local/home/../dev/simple_blog/models/users_model.php в строке 8
Хотя я не совсем понимаю, почему, поскольку я могу получать и извлекать информацию из моей БД, но по какой-то причине я не могу защитить ее ???
Вот моя функция, дающаяошибка
public function getUserByName($username){
$username = mysql_real_escape_string($username);
$sql = "SELECT * FROM ".$this->db_table." WHERE username='".$username."' LIMIT 1";
$q = $this->db->query($sql);
if($q->rowCount() > 0){
foreach($q->fetch() as $key => $row){
$data[$key] = $row;
}
return $data;
}
}
Как вы можете видеть, я использую mysql_real_escape_string () вверху, а затем, позже, выполняю запрос.Кто-нибудь знает, почему это не работает, и если да, то как бы это исправить?
ПРИМЕЧАНИЕ. Я не акула для PDO, а $ this-> db - это класс PDO.