为了账号安全,请及时绑定邮箱和手机立即绑定

查询失败数据未插入数据库

查询失败数据未插入数据库

PHP
白猪掌柜的 2023-07-08 16:31:12
这些是我的数据库上的字段partamento intcodigocurso intdiurno intcontacto intpos_laboral intcontacto2 intproc_por int从昨天开始我一直在尝试修复这个错误,但我无法弄清楚错误在哪里。**foreach ($diurno as $userId) {        $data .= "(".$id.",".$grdid.",".$userId.",".$contacto.",".$pos_laboral.",".$contacto2.",".$idd.")";    }        $data = rtrim($data, ',');    $sql = "insert into cursosprogramas (departamento, codigocurso, diurno, contacto, pos_laboral, contacto2, proc_por) values (".$data.");";    echo $sql;错误插入cursosprogramas(department, codigocurso, daytime, contact, pos_laboral, contacto2, proc_por)values((100,120,7,646,5,363,2)(100,120,4,646,5,363,2));查询失败。
查看完整描述

2 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

您在数据集之间缺少逗号,并且也不需要将它们全部括起来。您已经在使用rtrim()删除最后一个逗号,但实际上并没有在数据集的末尾添加逗号。


foreach ($diurno as $userId) {

    

    //add a comma at the end

    //note you can write variables directly into a string that is wrapped with double quotes

    $data .= "('$id', '$grdid', '$userId', '$contacto', '$pos_laboral', '$contacto2', '$idd'),";

}


//this gets rid of the very last comma in the string

$data = rtrim($data, ',');


//remove parenthesis around `$data`

$sql = "insert into cursosprogramas (departamento, codigocurso, diurno, contacto, pos_laboral, contacto2, proc_por) values {$data};";

echo $sql;

注意:Little Bobby表示这段代码可能面临 SQL 注入攻击的风险,具体取决于其中变量的$data创建方式。



查看完整回答
反对 回复 2023-07-08
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

您需要在值元组之间使用逗号。尝试在第二行末尾加一个逗号,如下所示:


foreach ($diurno as $userId) {

$data .= "(".$id.",".$grdid.",".$userId.",".$contacto.",".$pos_laboral.",".$contacto2.",".$idd."),";

}


$data = rtrim($data, ',');

$sql = "insert into cursosprogramas (departamento, codigocurso, diurno, contacto, pos_laboral, contacto2, proc_por) values (".$data.");";

echo $sql;


查看完整回答
反对 回复 2023-07-08
  • 2 回答
  • 0 关注
  • 138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信