Php 我的sql查询无法完全工作
我正在使用将数据添加到数据库中。首先,我从post获取值,然后将其插入表中。问题是总共有7个值,但只添加了5个值,其中2个未插入表中。这是我的密码Php 我的sql查询无法完全工作,php,mysql,Php,Mysql,我正在使用将数据添加到数据库中。首先,我从post获取值,然后将其插入表中。问题是总共有7个值,但只添加了5个值,其中2个未插入表中。这是我的密码 if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] )) { $degree_title = $_POST['degree_title']; $degree_year = $_POST['degree_year'];
if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] )) {
$degree_title = $_POST['degree_title'];
$degree_year = $_POST['degree_year'];
$uni_name = $_POST['uni_name'];
$degree_level = $_POST['degree_level'];
$major_sub = $_POST['major_sub'];
$run = mysql_query("INSERT INTO `career_fourudb`.`tffeck_employee_edu` (`id`, `employee_id`, `degree`, `year`, `degree_level`, `major_degree`, `uni`)
VALUES (NULL, $eme_uid, $degree_title, $degree_year, $degree_level, $major_sub, $uni_name)");
}
我回应了所有的值,所有的值都来了,所以为什么它们都没有插入到表中呢。谢谢如果
id
为自动递增,则无需插入
试试这个
$run = mysql_query("INSERT INTO `career_fourudb`.`tffeck_employee_edu` (`employee_id`, `degree`, `year`, `degree_level`, `major_degree`, `uni`)
VALUES ($eme_uid, $degree_title, $degree_year, $degree_level, $major_sub, $uni_name)");
尝试:
我强烈建议:
1) 不要使用mysql,因为它已被弃用,请使用mysqli_*
2) 在SQL语句中使用之前,请清理_POST中的所有值。我猜,
$degree\u title
和$uni\u name
不会被插入,因为它们是varchar。在这种情况下,必须在这些值周围加引号
Mysql有点“宽容”,因为它在sql语句中使用与列的实际类型相关的错误类型时不会抛出错误
试试看:
$run = mysql_query("INSERT INTO `career_fourudb`.`tffeck_employee_edu` (`id`, `employee_id`, `degree`, `year`, `degree_level`, `major_degree`, `uni`)
VALUES (NULL, $eme_uid, '$degree_title', $degree_year, $degree_level, $major_sub, '$uni_name')");
如前所述,id不必包含在insert语句中(如果id列是自动增量的),您应该真正了解mysqli或PDO。值中的字符串必须位于“$degree\u title”中。变得现代:学习将mysqli或PDO与准备好的语句和绑定变量一起使用,那么你就不会有这个问题了——你会希望任何与教育机构相关的编码都将使用本世纪的实践,而不是上个世纪的实践century@MarkBaker+1,问题是有太多的“坏”想成为howto…如果你只是在学习PHP,那么,我建议您阅读html表单的外观。这对$degree之类的字符串字段没有帮助_title@echo_me它不起作用,也不意味着你是否删除了id。这两种方法都适用,但主要问题是为什么只插入了5个值,我猜
$eme\u uid
没有插入koz我看不出您正在定义它。之所以插入它,是因为我从会话中获取了值。未插入的两个值是degree_title和major_subcheck your session_start()。我不需要看你的代码就可以帮你。我是php新手,所以我真的不知道该由谁来使用它。搜索“php清理用户值”并仔细查看链接表单Mark Baker我使用mysqli和sanize,但它仍然有相同的问题。仅插入5个值而不是全部7个值。是否确实已填充缺少的2个值var\u dump($\u POST)
要验证是的,我确信两个缺少的值都已填充。我还验证了字段名称的每一件事,它从未发生过,在我真的很困惑我错过了什么
$run = mysql_query("INSERT INTO `career_fourudb`.`tffeck_employee_edu` (`id`, `employee_id`, `degree`, `year`, `degree_level`, `major_degree`, `uni`)
VALUES (NULL, $eme_uid, '$degree_title', $degree_year, $degree_level, $major_sub, '$uni_name')");