php连接mysql提示null_如何将PHP变量中的NULL值插入MySQL,远离SQL注入?

我有一个Song Uploading Form,我不会在

MySQL中直接输入NULL值,如:mysql_query(“INSERT INTO songs(album_id)VALUES(NULL)”.我将从

PHP变量中插入NULL到MySQL,并且肯定对SQL安全注射.

我的SQL表是:

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),如下所示:

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."')

");

}

?>

Song Name
Artist Name

No Artist

Jennifer Lopez

Album Name

No Album

Rebirth

Genre Name

No Genre

Epic Records

 

但在此之后我得到了MySQL中的结果:

序列号:1

歌名:我,爱

艺术家ID:1

专辑ID:1

流派ID:1

现在,当我没有为任何歌曲选择“专辑ID”和“类型ID”时,它应该在MySQL内输入“NULL”.但它输入“0”.

因此结果如下:

序列号:1

歌名:我,爱

艺术家ID:1

专辑ID:0

流派ID:0

请给我一个解决方案,以便在选择“No Album”和“No Genre”时输入NULL.

请不要让我困惑解释不相关的主题.

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值