Что-то не так в запросе, неправильный идентификатор сотрудника в codeigniter? [дубликат]Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Что-то не так в запросе, неправильный идентификатор сотрудника в codeigniter? [дубликат]

Сообщение Anonymous »

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

мой запрос:

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

$this->db->select('*');
$this->db->from('app_users');
$where =  ' `USER_NAME` = "'.$username.'" '
. 'AND SUBSTR(PASSWORD, '.($char1).', 1) = \''.$pass1.'\' '
. 'AND SUBSTR(PASSWORD, '.($char2).', 1) = \''.$pass2.'\' '
. 'AND SUBSTR(PASSWORD, '.($char3).', 1) = \''.$pass3.'\' '
. 'AND SUBSTR(PIN, '.($char11).', 1) = \''.$pass4.'\' '
. 'AND SUBSTR(PIN, '.($char22).', 1) = \''.$pass5.'\' '
. 'AND SUBSTR(PIN, '.($char33).', 1) = \''.$pass6.'\' ';
$this->db->where($where);

$this->db->join('employee_details', 'app_users.EMPLOYEE_ID = employee_details.EMPLOYEE_ID', 'LEFT');
$this->db->join('employee_master', 'app_users.EMPLOYEE_ID = employee_master.EMPLOYEE_ID', 'LEFT');
$this->db->join('designation_master', 'employee_details.DESIGNATION_ID = designation_master.DESIGNATION_ID', 'LEFT');
$this->db->join('employee_visa_details', 'employee_details.EMPLOYEE_ID = employee_visa_details.EMPLOYEE_ID', 'LEFT');
$this->db->join('visa_status_master', 'employee_visa_details.VISA_STATUS_ID = visa_status_master.VISA_STATUS_ID', 'LEFT');
$this->db->join('employment_status_master', 'employee_details.EMPLOYMENT_STATUS_ID = employment_status_master.EMPLOYMENT_STATUS_ID', 'LEFT');
$this->db->join('employee_skills', 'employee_details.EMPLOYEE_ID = employee_skills.EMPLOYEE_SKILLS_ID', 'LEFT');

$query = $this->db->get();

return $query->result();
Иногда я получаю ошибку в запросе.

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

Error Number: 1064

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' 1) = '' AND SUBSTR(PASSWORD, , 1) = '' AND SUBSTR(PASSWORD, , 1) = '' AND SUBST' at line 10

SELECT * FROM `app_users` LEFT JOIN `employee_details` ON `app_users`.`EMPLOYEE_ID` = `employee_details`.`EMPLOYEE_ID` LEFT JOIN `employee_master` ON `app_users`.`EMPLOYEE_ID` = `employee_master`.`EMPLOYEE_ID` LEFT JOIN `designation_master` ON `employee_details`.`DESIGNATION_ID` = `designation_master`.`DESIGNATION_ID` LEFT JOIN `employee_visa_details` ON `employee_details`.`EMPLOYEE_ID` = `employee_visa_details`.`EMPLOYEE_ID` LEFT JOIN `visa_status_master` ON `employee_visa_details`.`VISA_STATUS_ID` = `visa_status_master`.`VISA_STATUS_ID` LEFT JOIN `employment_status_master` ON `employee_details`.`EMPLOYMENT_STATUS_ID` = `employment_status_master`.`EMPLOYMENT_STATUS_ID` LEFT JOIN `employee_skills` ON `employee_details`.`EMPLOYEE_ID` = `employee_skills`.`EMPLOYEE_SKILLS_ID` WHERE `USER_NAME` = "" AND SUBSTR(PASSWORD, , 1) = '' AND SUBSTR(PASSWORD, , 1) = '' AND SUBSTR(PASSWORD, , 1) = '' AND SUBSTR(PIN, , 1) = '' AND SUBSTR(PIN, , 1) = '' AND SUBSTR(PIN, , 1) = ''

Filename: C:/xampp/htdocs/CodeIgniter-3.1.6/system/database/DB_driver.php

Line Number: 691
Я не понимаю, что не так с моим запросом. потому что я получаю все остальные данные верными, но с другим идентификатором сотрудника.

это мой контроллер для того же:

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

  $this->load->model('user_model');
$username = $this->input->post('user_email');
$pass1 = $this->input->post('pass1');
$pass2 = $this->input->post('pass2');
$pass3 = $this->input->post('pass3');

$char1 = $this->input->post('char1');
$char2 = $this->input->post('char2');
$char3 = $this->input->post('char3');

$pass4 = $this->input->post('pass4');
$pass5 = $this->input->post('pass5');
$pass6 = $this->input->post('pass6');

$char11 = $this->input->post('char11');
$char22 = $this->input->post('char22');
$char33 = $this->input->post('char33');
/*$password = $this->input->post('user_password');
$pin = $this->input->post('user_pin');*/
$is_valid = $this->user_model->validate($username,$char1,$pass1, $char2,$pass2, $char3,$pass3,$char11,$pass4,$char22, $pass5, $char33,$pass6);
пожалуйста, помогите мне в том же. Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/474 ... odeigniter
Ответить

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

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

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

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

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