我收到了这个错误:
错误号码:1064 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的“@ gmail.com”附近使用正确的语法
以下是代码:
$email = $this->input->post('email');
$checkEmail = $this->crud_model->retrieve_where('employee', 'email', 'email', $email);
crud_model:
function retrieve_where($table, $table_id, $table_name, $value) {
$table = $this->db->query('Select * FROM ' . $table . ' Where ' . $table_id . ' = ' . $value);
$records = array();
foreach ($table->result() as $row) {
$records[] = $row->$table_name;
}
return $records;
}
答案 0 :(得分:2)
您尝试执行的查询是:
SELECT * FROM Email WHERE Email = email@email.com
电子邮件在这种情况下是一个字符串,需要引用一个字符串。
function retrieve_where($table, $table_id, $table_name, $value) {
$table = $this->db->query("Select * FROM " . mysql_real_escape_string($table) . " Where " . mysql_real_escape_string($table_id) . " = '" . mysql_real_escape_string($value) ."'");
$records = array();
foreach ($table->result() as $row) {
$records[] = $row->$table_name;
}
return $records;
}
请勿忘记使用mysql_real_escape_string()
转义您的查询。它可以保护您免受注射。