在mysql语句中插入变量时出错


errors inserting variables in mysql statement

我正试图在mysql表中插入四个变量。以下mysql INSERT语句会产生T_STRING错误。如果有人能告诉我语法上的错误在哪里,我将不胜感激。

function add_student($name, $phone, $email, $id) {
global $modx;
$session_id = intval($id, 10);
$query = $modx->db->INSERT INTO `xtra_students`(`name`, `phone`, `email`, `session_id`) VALUES ('$name', '$phone', '$email', '$session_id');    
return $query;
}

前3个变量是varchar,$session_id是int(4)。

您缺少一个函数调用和字符串周围的引号:

$query = $modx->db->query("INSERT INTO `xtra_students`(`name`, `phone`, `email`, `session_id`) VALUES ('$name', '$phone', '$email', '$session_id')");    
$query = $modx->db->INSERT INTO `xtra_students`(`name`, `phone`, `email`, `session_id`) VALUES ('$name', '$phone', '$email', '$session_id');    

这一行是问题所在,你需要用引号包装mysql查询,我不知道你的$modx->db->是什么,但它可能看起来像这样:

$modx->db->query("INSERT INTO `xtra_students`(`name`, `phone`, `email`, `session_id`) VALUES ('$name', '$phone', '$email', '$session_id')");   
$modx->db->query("INSERT INTO `xtra_students`(`name`, `phone`, `email`, `session_id`) VALUES ('$name', '$phone', '$email', '$session_id')");