我正在查询中,因为插入值和选择不起作用,这是使用它的正确方法吗?谢谢!
这是我的查询行
$sql = "INSERT INTO `stud_class` (`stud_fullname`, `stud_uid`,`stud_code`, `stud_subject`, `stud_cname`,`stat`) VALUES ('$stud_full','$stud_uid',(SELECT subject_code,subsubject,class_Name FROM subject WHERE subject_code = '$subcode'),1)";
答案 0 :(得分:0)
用作表达式的子查询只允许返回一个值,而不是多列。
您需要将SELECT
查询用作所有值的来源,而不是VALUES
列表内的表达式。
$sql = "INSERT INTO `stud_class` (`stud_fullname`, `stud_uid`,`stud_code`, `stud_subject`, `stud_cname`,`stat`)
SELECT '$stud_full','$stud_uid', subject_code,subsubject,class_Name, 1
FROM subject WHERE subject_code = '$subcode')";
您还应该使用准备好的语句,而不是将变量替换为SQL字符串。参见How can I prevent SQL injection in PHP?