如何将PHP变量中的NULL值插入MySQL,远离SQL注入?

2023-12-31

我有一个歌曲上传表单,我不会直接在 MySQL 中输入 NULL 值,例如: mysql_query("INSERT INTOsongs (album_id) VALUES (NULL)"。我会将 NULL 从 PHP 变量插入到 MySQL,并且肯定不会受到 SQL 注入的影响。

Mysql表是:

CREATE TABLE IF NOT EXISTS `songs` (
  `song_id` int(4) NOT NULL,
  `song_name` varchar(64) NOT NULL,
  `artist_id` int(4) NOT NULL,
  `album_id` int(4) DEFAULT NULL,
  `genre_id` int(4) DEFAULT NULL
  PRIMARY KEY (`song_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

我的 FORM 和 FORM HANDLER 代码(PHP,HTML)如下:

<?php

if(isset($_REQUEST['SongForm']))
{
$song_name = trim($_POST['song_name']);
$artist_id = trim($_POST['artist_id']);
$album_id = $_POST['album_id']; if($album_id == 0) { $album_id = 'NULL'; } // I even tried using NULL instead of 'NULL'
$genre_id = $_POST['genre_id']; if($genre_id == 0) { $genre_id = 'NULL'; }

$query = mysql_query("
INSERT INTO `songs` (`song_name`, `artist_id`, `album_id`, `genre_id`) 
VALUES ('".$song_name."', '".$artist_id."', '".$album_id."', '".$genre_id."')
");
}

?>

<form method="post" action="<?php echo $_SERVER['PHP_SELF']?>" name="SongForm" id="SongForm">
<table style="width: 100%">
<tr>
<td><b>Song Name</b></td>
<td><input name="song_name" value="" type="text" required /></td>
</tr>
<tr>
<td><b>Artist Name</b></td>
<td>
<select id="artist_id" name="artist_id">
<option value ="0">No Artist</option>
<option value ="1">Jennifer Lopez</option>
</select>
</td>
</tr>
<tr>
<td><b>Album Name</b></td>
<td>
<select id="album_id" name="album_id">
<option value ="0">No Album</option>
<option value ="1">Rebirth</option>
</select>
</td>
</tr>
<tr>
<td><b>Genre Name</b></td>
<td>
<select id="genre_id" name="genre_id">
<option value ="0">No Genre</option>
<option value ="1">Epic Records</option>
</select>
</td>
</tr>
<tr>
<td><b>&nbsp;</td></b>
<td><input name="SongForm" type="submit" value="Upload Song" /></td>
</tr>
</table>
</form>

但之后我在 MySQL 中得到的结果如下:

序列号:1 歌曲名称:我,爱 艺术家编号:1 专辑ID:1 类型 ID:1

现在,当我没有为任何歌曲选择“专辑 ID”和“流派 ID”时,它应该在 MySQL 中输入“NULL”。但输入的是“0”。

因此结果如下:

序列号:1 歌曲名称:我,爱 艺术家编号:1 专辑ID:0 类型 ID:0

请给我一个解决方案,以便我在选择“无专辑”和“无流派”时可以输入 NULL。

请不要让我困惑地解释不相关的话题。

感谢支持解释答案的朋友,尽管任何答案都还没有给我正确的解决方案。


在您的代码中,检查您的变量是否为空,如果它们为空,请使用NULL而不是变量。 要通过一个NULL to MySQL, try

INSERT INTO table (field,field2) VALUES (NULL,3)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将PHP变量中的NULL值插入MySQL,远离SQL注入? 的相关文章

  • PHP MySQL 使用选项/选择 HTML 表单标签进行多重搜索查询

    我正在尝试使用两个搜索字段设置基本的 MySQL LIKE 搜索 我不想拥有它 所以它有多个可选搜索字段 例如if isset POST city isset POST name 我不知道如何用 HTML 来做到这一点
  • 检查 PHP 中“@”字符后面的单词

    我现在正在制作一个新闻和评论系统 但是我已经在一个部分上停留了一段时间了 我希望用户能够在 Twitter 上引用其他玩家的风格 例如 用户名 该脚本看起来像这样 不是真正的 PHP 只是想象脚本 3 string I loved the
  • Apache 访问 Linux 中的 NTFS 链接文件夹

    在 Debian jessie 中使用 Apache2 PHP 当我想在 Apache 的文档文件夹 var www 中创建一个新的小节时 我只需创建一个指向我的 php 文件所在的外部文件夹的链接 然后只需更改该文件夹的所有者和权限文件夹
  • MYSQL - 使用逗号分隔字符串作为变量输入的存储过程

    我希望有人能够提供帮助 我已经创建了我的第一个存储过程 没什么花哨的 但是我遇到了问题 我想给它一个字符串输入 例如 1 2 3 4 5 然后它执行一个简单的操作SELECT FROM TABLE WHERE EAN IN VAR 所以存储
  • posts_search 中的自定义查询

    如何使用此查询作为我的自定义搜索查询 add filter posts search my search is perfect 20 2 function my search is perfect search wp query sWord
  • 是否可以使用 PHP 重定向发送 POST 数据?

    更新 这不是重复的如何使用 PHP 发送 POST 请求 https stackoverflow com questions 5647461 how do i send a post request with php 那里的解决方案对我不起
  • 从 smarty 访问 PHP 文件的变量(本地或全局)

    我有一个 php 文件 其中包含一些本地和全局变量 例如 foo 从此文件中调用 smarty 对象 如何在不更改 PHP 文件的情况下从 smarty 脚本访问 foo Thanks 如果你有一个名为 BASE 的常量变量 并且定义如下
  • 使用 SSL 证书验证 Web 浏览器

    是否可以使用 ssl 证书对 Web 浏览器进行身份验证 假设我在应用程序中存储私钥 有什么方法可以从浏览器读取密钥并尝试基于该私钥进行身份验证 您可以使用 SSL TLS 客户端证书身份验证来对浏览器 用户进行身份验证 服务器必须请求客户
  • 在 android 中建立与 MySQL 的池连接

    我需要从我的 Android 应用程序访问 MySQL 数据库 现在所有的工作都通过 DriverManager getConnection url 等等 但我必须从多个线程访问数据库 所以我必须使用连接池 问题1 是 com mysql
  • 通过 $_SESSION 从一个脚本发送到另一个脚本期间数据丢失

    我正在尝试将一个充满属性的对象从一个 PHP 发送到另一个 PHP SESSION object obj where obj是一个用 foreach 循环指定的对象 foreach array of objects as obj SESSI
  • Woocommerce 结账自定义选择字段

    我有以下功能 将选择列表添加到 woo commerce 结账表单中 woocommerce form field airport pickup array type gt select class gt array airport pic
  • 使用 Ajax.Request 将 JSON 从浏览器传递到 PHP 的最佳方法

    您好 我有一个 JSON 对象 它是一个二维数组 我需要使用 Ajax Request 将其传递给 PHP 我知道的唯一方法 现在我使用js函数手动序列化我的数组 并获取以下格式的数据 s 1 d 3 4等 我的问题是 有没有办法更直接 有
  • SQL 最近日期

    我需要在 php 中获取诸如 2010 04 27 之类的日期作为字符串 并在表中找到最近的 5 个日期 表中的日期保存为日期类型 您可以使用DATEDIFF http dev mysql com doc refman 5 1 en dat
  • 表单提交后如何保留选择字段中的选定值?

    我有一个用于将票证上传到数据库的主页 我有一个选择字段 我想保留用户在提交表单之前选择的值 但它没有发生 这是我选择字段的代码
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • 使用正则表达式提取两个短语之间的所有单词[重复]

    这个问题在这里已经有答案了 我正在尝试使用以下正则表达式提取两个短语之间的所有单词 b item W w W 0 2 1 one W w W 0 3 business b b item W w W 0 2 3 three W w W 0 3
  • 如何在 Laravel 中使用 PUT http 动词提交表单

    我知道这个问题可能已经提出 但我就是无法让它发挥作用 如果有人可以帮助我 我将非常感激 我安装了 colletive form 但答案也可以是 html 表单标签 现在列出我的表格 我的路线和我的例外情况 Form model array
  • 如何使用 PHPExcel 库从 Excel 获取日期

    我正在尝试使用 PHPExcel 从 Excel 获取日期 但我没有得到日期 我得到的字符串值不是 1970 以来的秒数 我尝试过的代码是 InvDate trim excel gt getActiveSheet gt getCell B
  • post php mysql 的拆分关键字

    我有一个表存储帖子 ID 它的标签如下 Post id Tags 1 keyword1 keyword2 keyword3 我想循环遍历该表中的每一行并执行以下操作 将关键字1 关键字2 关键字3放入新表中 word id word val
  • 对具有混合类型值的数组进行数字排序

    我有一个像这样的混合数组 fruits array lemon Lemon 20 banana apple 121 40 50 然后申请sort 其功能如下 sort fruits SORT NUMERIC foreach fruits a

随机推荐

  • 使用 d3.js 的多个地图:更改比例和中心的值

    我正在构建一个 d3 v4 地图可视化它允许用户在许多数据集 json 文件 之间切换两个不同的地区 一个国家的行政单位和较小的行政单位进入其首都 实际上 通过按钮和 jquery 在初始国家级别上从一个数据集到另一个数据集的切换效果很好
  • VBA 捕获“计算工作表 (shift+f9)”和“计算工作簿”事件

    我不知道这是否是微不足道的或实际上很棘手 是否有可能捕获 VBA 中的 计算工作表 shift f9 和 计算工作簿 事件 我想隐藏一些操作几千行的进程 只显示一些关键值 我正在计算分布 数千行 并且只想输出百分位数和一些统计数据 以及图表
  • jquery-ui datepicker 多语言集成

    我正在尝试将不同的 jquery ui datepicker 选项组合到一个函数中 我可以让大部分脚本脱离语言而工作 我拥有所有 i18n 文件 并且我正在使用 select 元素来更改值 但似乎没有任何效果 我做错了什么
  • API 请求错误 - 请求的资源上不存在“Access-Control-Allow-Origin”标头

    我尝试获取 API 请求 但返回此错误 Access to XMLHttpRequest at https api deezer com chart from origin http localhost 3000 已被 CORS 策略阻止
  • 文件夹目录中的子文件夹数量

    我有一个包含两个数据文件的文件夹 txt等 和子文件夹 在Java中 如何获取任何指定目录路径中的子文件夹数量 因此排除数据文件 仅计算子文件夹 我读过有关计算数量的内容 txt文件 但似乎找不到任何有关仅计算子文件夹的信息 我不知道从哪里
  • 为什么 Net::FTP 无法连接到服务器?

    我正在尝试创建一个脚本来使用 Ruby 列出并从 FTP 服务器下载数据 我是 Ruby 新手 所以我寻找了如何使用 Net FTP 的文档 我无法理解为什么这不起作用 require net ftp server ftp server c
  • 在 D3.js 中导入并解析 SVG 文件

    我在其他地方 使用 MS Visio 创建了 SVG 文件 我想将其用作可视化的背景 其中一些定位是由 SVG 图形中项目的放置驱动的 理想情况下 我能够直接操作导入的 SVG 数据 然后使用它通过 D3 在调用文档中创建元素 是否有一种简
  • C 中的双三次插值

    我正在尝试处理c中的双三次图像插值 因此我构建了这个小脚本 1 resize image 函数 void resize image PPMImage source image PPMImage destination image float
  • 模拟网页某个部分的移动分辨率

    我有一个网站 主要用于桌面上的大屏幕显示器 在页面内 我将有各种内容部分 但我还希望在 div 内有一个移动应用程序区域 该区域将向用户显示移动应用程序中的项目在不同手机上的外观可能有所不同 查看一些手机的规格 我发现 iPhone 7 4
  • Codeception - 无法连接到 Webdriver(验收测试)

    我可以访问 url 并创建会话 http localhost 4444 wd hub static resource hub html http localhost 4444 wd hub static resource hub html
  • 将 json 字符串转换为对象数组

    我有 json 数组作为字符串 id 1 lat 23 053 long 72 629 location ABC address DEF city Ahmedabad state Gujrat phonenumber 1234567 id
  • CSS 3 - 缩放过渡在谷歌浏览器中恢复

    我有一个问题 我有以下代码 用于使用 CSS3 过渡来增加比例 最后它在增加后恢复到原始比例 CSS big transition all 0 3s ease in out display inline big hover webkit t
  • 无法在 Windows Server 2008 SP2 上启用 TLS 1.2

    我们最近将 Java 版本升级到JDK 1 8 0 141这迫使我们的 java 客户端使用TLS 1 2我们有一个 Net 2 0Web 服务运行在Windows Server 2008 SP2仅支持SSL V3 and TLS 1 0
  • 单行水平滚动/可滑动 GridView

    我想要一个可以通过鼠标和触摸滑动水平滚动的单行 GridView GridView是通过绑定来呈现图像 以便从图像数组中选择单个图像 除了水平滚动不起作用之外 一切都工作正常 装订 图像选择等 XAML 代码如下所示 我缺少什么
  • Springfox swagger-ui 3.0.0 不显示 swagger-ui.html 页面

    我将 springfox swagger ui 与 Springboot 结合使用 但未启用分段上传的 fileUpload 按钮 我尝试升级到 springfox swagger ui 3 0 0 但这甚至没有打开 swagger ui
  • 从基于 Linux 的 C 程序打开并读取 Excel?

    我正在尝试找到一组源代码 这些源代码允许我从 C 程序中打开并读取 Linux 上的 Excel 文件的内容 如果我能找到只做这两件事的东西 我真的不想将它链接到 OpenOffice SDK carl 如果以下内容适合您 那么您可以从以下
  • 连接字符串错误(错误:40)

    我已在 Windows Server 2008 计算机上安装了 SQL Server 2012 Express 机器的名称是 THEMACHINE 安装时 我将 SQL Server 2012 设置为 默认实例 现在我像这样设置连接字符串
  • Travis.yml 因内容简约而失败?

    我有当前的travis yml在我的 Github 上 see http about travis ci org docs user languages php for more hints language php list any PH
  • 使用 :after CSS 伪元素而不插入内容

    是否可以使用 afterCSS 伪元素用于偏移对齐 而不实际插入任何内容content 除非指定内容 否则它似乎不会呈现 所以只是想知道这是否可能或者是否有任何已知的解决方法 举个例子 nav primary li level0 a aft
  • 如何将PHP变量中的NULL值插入MySQL,远离SQL注入?

    我有一个歌曲上传表单 我不会直接在 MySQL 中输入 NULL 值 例如 mysql query INSERT INTOsongs album id VALUES NULL 我会将 NULL 从 PHP 变量插入到 MySQL 并且肯定不