php - 使用插入值选择的正确方法
问题描述
我正在处理我的查询,因为 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)";
解决方案
用作表达式的子查询只允许返回一个值,而不是多个列。
您需要使用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 注入?
推荐阅读
- sql-server - 选项(QUERYTRACEON 9481),动态 SQL 和 DBCC TRACEON 错误
- javascript - AJAX - 实时 CSS 样式的问题
- javascript - 无法在 HTMLDocument (Firebase) 中读取 null 的属性“电子邮件”
- python - Errno 13 - Windows 10 上的 Jupyter Notebook 拒绝权限
- c# - 从延迟加载模型创建 DbQuery
- amazon-cloudwatch - 从 Fargate 容器内运行 AWS 日志代理
- python-3.x - 如何将 datetime.datetime(YYYY,mm,dd,HH,MM,SS) 格式转换为十进制 YYYYmm.DDHH
- javascript - 用于禁用 youtube 视频的鼠标单击的 Javascript 代码
- php - 如何在 PHP 中使用 shell_exec 运行带有参数的 .sh 文件?
- php - 是否可以将 URL 传递的“PHP”变量作为 SQL 查询的比较元素传递?