首页 > 解决方案 > 使用插入值选择的正确方法

问题描述

我正在处理我的查询,因为 Insert into value 和 select 不起作用,这是使用它的正确方法吗?谢谢你!

这是我的查询行

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

标签: php

解决方案


用作表达式的子查询只允许返回一个值,而不是多个列。

您需要使用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 字符串中。请参阅如何防止 PHP 中的 SQL 注入?


推荐阅读