程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在关联数组中指定变量,在循环中获取值并插入数据库大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何在关联数组中指定变量,在循环中获取值并插入数据库?

开发过程中遇到如何在关联数组中指定变量,在循环中获取值并插入数据库的问题如何解决?下面主要结合日常开发的经验,给出你关于如何在关联数组中指定变量,在循环中获取值并插入数据库的解决方法建议,希望对你解决如何在关联数组中指定变量,在循环中获取值并插入数据库有所启发或帮助;

代码将数据插入到数据库中。我在用变量替换数组值之一时遇到问题,即我想指定 $fac_ID 作为值而不是从输入字段中获取值。当我执行代码时,db 中的值是空的,但是当我回显 $fac_ID 时,我得到一个登录用户的值,例如 7

$current_user = wp_get_current_user();
$fac_ID = get_current_user_iD();
for ($i = 0; $i < count($_POST["service"]); $i++) {
    $fIElds = [
          1 => 'shifttype',2 => 'shiftstype',3 => ''.$fac_ID.'',4 => 'cvd',7 => 'facname',8 => 'facadd',];

    foreach ($fIElds as $forminputID => $inputValueKey) {
        $d_ID = '';
        $appointmentID = $insertID;
        $customerID = $custs->ID;
        $forminputID = $forminputID;
        $inputvalue = $_POST[$inputValueKey][$i];
        $inputfilename = 'NulL';

        $insert_cust = "INSERT INTO wp_appointment_custom_data (ID,appointment_ID,customer_ID,form_input_ID,input_value,input_file_name) VALUES ('$d_ID','$appointmentID','$customerID','$forminputID','$inputvalue','$inputfilename')";
        $query_run = MysqLi_query ($que_cust,$insert_cust);
    } 
}

解决方法

您实际上根本没有将 $fac_id 插入数据库。您的 $fields 数组的作用是确定每个插入使用哪个 $_POST 值。

因此,如果您将 $fields['3'] 设置为 7,那么它将尝试使用该值运行 $inputvalue = $_POST[$inputValueKey][$i] - 例如如果 $i0,那么它将尝试从 $inputvalue = $_POST[7][0] 读取。

不过

a) 我怀疑您有一个名为 $_POST7 字段,并且

b) 它并没有删除从用户输入中读取的过程(尽管它使它读取了一个可能不存在的值)。

我怀疑类似下面的东西会起作用 - 当您希望它从固定的服务器端值而不是用户输入读取时,您可能需要一个特殊情况。请注意 $fields[3] 的硬编码条目以及 $inputvalue = 行上的三元运算符以实现特殊情况。此外,无需使用相同的值重复重新定义 $fields,因此我已将其移出循环。

$current_user = wp_get_current_user();
$fac_id = get_current_user_id();
$fields = [
      1 => 'shifttype',2 => 'shiftstype',3 => 'userID',4 => 'cvd',7 => 'facname',8 => 'facadd',];

for ($i = 0; $i < count($_POST["service"]); $i++) {

    foreach ($fields as $formInputId => $inputValueKey) {
        $d_id = '';
        $appointmentid = $insertId;
        $customerid = $custs->id;
        $forminputid = $formInputId;
        $inputvalue = ($inputValueKey == "userID" ? $fac_id : $_POST[$inputValueKey][$i]);
        $inputfilename = 'NULL';

附言您还应该紧急修复代码中的 SQL 注入漏洞,如评论中所述。

大佬总结

以上是大佬教程为你收集整理的如何在关联数组中指定变量,在循环中获取值并插入数据库全部内容,希望文章能够帮你解决如何在关联数组中指定变量,在循环中获取值并插入数据库所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: