猿问
下载APP

PHP操作MYSql问题

<?php
$host = '127.0.0.1';
$root = 'root';
$pass = 'XXX';
$dbna = 'test';
$conn = mysqli_connect($host,$root,$pass,$dbna);

$name = null;
$password = null;
$name_en = null;
$department = null;
$position = null;
$sql = "insert into person (name,password,name_en,department,position)
						value('$name','$password','$name_en','$department','$position ')";
if(mysqli_query($conn,$sql)){
	echo ("创建成功");	
}else{
	echo (mysqli_error($conn));
}
?>

MYSQL数据库已设置都不允许NULL,通过PHP操作插入数据时,如果把null赋值给变量,然后通过变量插入,仍然能插入数据。

如果,直接设置null则会正常的提示不允许null值, 

$sql = "insert into person (name,password,name_en,department,position)
						value('$name','$password','$name_en','$department',null)";

为什么通过变量形式还是能够插入null值

jugge
浏览 8395回答 53
53回答

qq_ty_1

你带单引号了吧 所以是 'null'字符串而已吧

慕神6678310

php语言比较简单

天使之翼死神之镰

null改成NULL试试看

慕莱坞8333017

8279622547488042995731346509885882674124118561281993168930740491625898030961116052267952124135271420299496068073299625052380844708447225364591050863944553519590070298576759614298055294868033238138478699574976409730040084218621663931174954301074417642209621775254397432955639954173787518528886217539763884416632641859663051197

ChengMingC

兄弟,666

凯旋132

首先我向展示两个值,看一下一不一样,1.'null'  2.null    这两个值是不一样的,'null'是一个普通的字符串,而null则表示为空

林子懿

可能是这样的,数据库设置的默认值是NULL,所以你输入空的时候就是NULL你可以给数据库字段一个默认值

QJAutumn

你可以这样{$name}

ZM77

单引号不解析变量,双引号才解析变量

风儿风光

给变量加上{}
打开App,查看更多内容
随时随地看视频慕课网APP
继续浏览精彩内容
慕课网APP
程序员的梦工厂
继续