0
我通过php将一些数据插入到mysql数据库中。问题是,当我尝试向列中插入空值时,它不会像这样存储:NULL它实际上保存NULL作为文本或当我从我的PHP脚本中删除if语句时,它将插入一个可用空间柱。 这是我的PHP代码:将NULL插入到具有Varchar数据类型的列中
<?php
register();
function connectToDatabase(){
$connection=mysqli_connect("localhost","username","pass","db");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_set_charset($connection,"utf8");
return $connection;
}
function register(){
$connection = connectToDatabase();
$OrgID = $_REQUEST['OrgID'];
$OrgName = $_REQUEST['OrgName'];
$OrgAddress = $_REQUEST['OrgAddress'];
$OrgPhone = $_REQUEST['OrgPhone'];
if($OrgName!=""){
$check = mysqli_query($connection,"select count(*) from organization where org_name='$OrgName'");
$row = mysqli_fetch_array($check);
if($row[0]>=1){
print "old_user";
}else {
$result = mysqli_query($connection,"insert into organization (org_id,org_name,org_address,org_phone) values('$OrgID','$OrgName','$OrgAddress','$OrgPhone')");
if($result!=""){
print "ok";
}else if($result==""){
print "no";
}
mysqli_close($connection);
}
}else {
print "null";
}
}
?>
当我把if语句来检查这个样子保存NULL作为文本:
if($OrgID == '')
{
$OrgID = 'NULL';
}
这是我的表结构:
CREATE TABLE IF NOT EXISTS `organization` (
`org_pid` int(11) NOT NULL AUTO_INCREMENT,
`org_id` varchar(16) DEFAULT NULL,
`org_name` varchar(45) NOT NULL,
`org_address` varchar(255) DEFAULT NULL,
`org_phone` varchar(45) NOT NULL,
PRIMARY KEY (`org_pid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;
因为您在单个quores中有空''$ orgID''是一个字符串。 – Jens
BTW了解准备好的语句 – Jens
[MySQL更新Varchar列与NULL]可能的重复(http://stackoverflow.com/questions/34963707/mysql-updating-varchar-column-with-null) –