Попытки привязать данные к параметризованному запросу CodeIgniter приводят к ошибке 1054.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Попытки привязать данные к параметризованному запросу CodeIgniter приводят к ошибке 1054.

Сообщение Anonymous »

Я следую этой серии руководств, чтобы научиться создавать сценарий входа в систему.
Я прошел все руководство, но продолжает выдавать эту ошибку.

Я использую CodeIgniter Framework 2.02
Вот какую ошибку я получаю:

Произошла ошибка базы данных
Номер ошибки: 1054
Неизвестный столбец «anil» в разделе «where»
SELECT user_id FROMusers WHERE username = anil И пароль = пароль
Имя файла: D:\xampp\htdocs\c_login\system\database\DB_driver.php
Номер строки: 330

Вот функция в моей модели, выполняющая SQL:

Код: Выделить всё

function check_login($username, $password)
{
$sha1_password = sha1($password);

// The Guy uses ' ? ' in the video for the below statement and it works
// I tried replacing ? with $username & $password, but it didnt work..
// When I use the ?, I think it does query the DB, but I get the error
// Incorrect Username or Password, Even though it is correct.
// I only have 1 record on my DB, db = c_login, table=users
// Fields are user_id   username    password    email   name

$query_str = "SELECT user_id FROM users WHERE username = ? AND password = ?";
$result = $this->db->query($query_str, $username, $sha1_password);

if ($result->num_rows() == 1) {
return $result->row[0]->user_id;
} else {
return false;
}
}
Кроме того, если необходимо, вот моя функция входа в контроллер.

Код: Выделить всё

public function login()
{
$this->form_validation->set_rules('username', 'Username', 'required|trim|max_length[50]|xss_clean');
$this->form_validation->set_rules('password', 'Password', 'required|trim|max_length[50]|xss_clean');

// If form_validation has NOT been run, load the view login form
if ($this->form_validation->run() == FALSE) {
$this->load->view('view_login');
} else {
// Process input and login
$username = $this->input->post('username');
$password = $this->input->post('password');

$user_id = $this->User_model->check_login($username, $password);

if (!$user_id) {
// Login Failed Error
$this->session->set_flashdata('login_error', TRUE);
redirect('user/login');
} else {
// Log them in

$this->session->set_userdata(array(
'logged_in' => TRUE,
'user_id' => $user_id
));

redirect('user/main_page');
}
}
}
По сути, он продолжает сообщать «Неверное имя пользователя или пароль», если я использую вопросительные знаки в запросе SQL, но если я заменяю их переменными $username и $password, я получаю ошибку в первом блоке кода. Номер ошибки: 1054,
Что я делаю не так? Могу поклясться, что это так просто...

Подробнее здесь: https://stackoverflow.com/questions/631 ... 1054-error
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»