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

将带有 Post 方法的表单提交给 PHP 将其中一个变量作为 NULL 传递,而它应该是一个字符串

将带有 Post 方法的表单提交给 PHP 将其中一个变量作为 NULL 传递,而它应该是一个字符串

PHP
白板的微信 2022-10-28 15:00:25
我正在使用 Ajax 提交表单。表单被传递到 PHP 服务器(当前位于 localhost),该服务器将值输入 MySQL 数据库。问题是它没有传递一个变量,并且 MySQL 不接受 NULL。无论如何,问题在于这部分代码:let advM = document.getElementById("advertsM");var mailme = (advM.checked) ? "Yes":"No"; 好吧,公平地说,当我用开发工具(F12)查看它时,变量的值要么是“是”,要么是“否”。此外,当我使用 F12 工具查看通过 Ajax 提交表单的 XHR 代码时,变量 ( mailme) 又是“是”或“否”。xhr3.send   (    "HOTSPOT_NAME="+encodeURIComponent(hsname)+    "&HTTP_USER_AGENT="+encodeURIComponent(useragent)+    "&HTTP_ACCEPT_LANGUAGE="+encodeURIComponent(acceptedla)+    "&FIRST_NAME="+encodeURIComponent(firstname)+    "&EMAIL="+encodeURIComponent(useremail)+    "&LANGUAGE="+encodeURIComponent(langua)+    "&LINK_ORIG="+encodeURIComponent(linkorig)+    "&MAILING_LIST"+encodeURIComponent(mailme) //mailme has a value of "Yes"/"No");但是,当没有任何东西提交到 MySQL 数据库并且我检查了 php 错误日志时,我遇到了这个错误:PHP Fatal error:  Uncaught mysqli_sql_exception: Column 'MAILING_LIST' cannot be null in C:\xampp\htdocs\HS\DBinsert.php:32Stack trace:#0 C:\xampp\htdocs\HS\DBinsert.php(32): mysqli_stmt->execute()#1 {main}  thrown in C:\xampp\htdocs\HS\DBinsert.php on line 32PHP代码:$stmt = $DB->prepare("INSERT INTO users     (HOTSPOT_NAME, HTTP_USER_AGENT, HTTP_ACCEPT_LANGUAGE,     FIRST_NAME, EMAIL, LANGUAGE,     LINK_ORIG, MAILING_LIST) VALUES (?, ?, ?, ?, ?, ?, ?, ?)");$stmt->bind_param("ssssssss", $_POST['HOTSPOT_NAME'],     $_POST['HTTP_USER_AGENT'], $_POST['HTTP_ACCEPT_LANGUAGE'],     $cleaner_fname, $cleaner_email,     $_POST['LANGUAGE'], $_POST['LINK_ORIG'], $_POST['MAILING_LIST']);$stmt->execute(); //line 32$stmt->close();我无法理解的是,为什么当它显然应该是一个字符串时它传递 NULL (正如我在断点中放置并验证该值是一个字符串......)欢迎任何帮助,因为我不知道如何解决这个问题。
查看完整描述

1 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

我想你可能在你的 xhr 代码中忘记了一个=符号:&MAILING_LIST

xhr3.send   (
    ...
    "&MAILING_LIST"+encodeURIComponent(mailme));

此外,如果您的字段只接受“是”和“否”,例如,您可以将字段默认值设置为“否”(好吧,如果您可以编辑数据库)。


查看完整回答
反对 回复 2022-10-28
  • 1 回答
  • 0 关注
  • 114 浏览

添加回答

举报

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