使用插入值选择的正确方法

时间:2019-09-26 20:00:45

标签: php

我正在查询中,因为插入值和选择不起作用,这是使用它的正确方法吗?谢谢!

这是我的查询行

$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)";

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?