猿问
下载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
浏览 6191回答 18
18回答

灬紫羽

单引号不解析变量,双引号才解析变量,你插入的不是  Null,你插入的是'$name'这个字符串,所以能插入

qq_ty_1

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

jugge

已找到解决方法,赋值是加上单引号,然后语句中不用引号,这样执行就会提示不允许null了$name = 'null'; $password = 'null'; $name_en = 'null'; $department = 'null'; $position = 'null'; $company = 'null'; $sql = "insert into person (name,password,name_en,department,position,company)                     value($name,$password,$name_en,$department,$position,$company)";

qq_123_1563591689

php语言比较简单

天使之翼死神之镰

null改成NULL试试看

Caballarii

你确定数据库里$sql = "insert into person (name,password,name_en,department,position)                         value('$name','$password','$name_en','$department','$position ')";这样插入的数据是null???

qq_慕斯卡4054824

有偿求购:做个B/S办公网站,PHP+MySQL,用户10人登录管理,有合同台账、付款台账,变更台账(几个表关联),新手可以找我(以匹配没入门的我),我的邮件mas10000@163.com。

ChengMingC

兄弟,666

凯旋132

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

林子懿

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

码农3484829

你可以这样{$name}

ZM77

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

筑梦之路

<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>PHP mysqli预处理语句</title></head><body> <?php $servername = "127.0.0.1"; $username = "root"; $password = "root"; $dbname = "myDB";//创建连接 $conn = new mysqli($servername, $username, $password, $dbname);//检测连接 if($conn -> connect_error){ die("连接失败!" .  $conn -> connect_error); } //预处理以及绑定 $stmt = $conn -> prepare ("insert into myGuests (firstname, lastname, email) values (?,?,?)"); $stmt -> bind_param("sss", $firstname, $lastname, $email); //设置参数并执行 $firstname = "John"; $lastname = "Doe"; $email = "jhon@163.com"; $stmt -> execute(); $firstname = "Mary"; $lastname = "Moe"; $email = "mary@example.com"; $stmt->execute();   $firstname = "Julie"; $lastname = "Dooley"; $email = "julie@example.com"; $stmt->execute(); echo "myGuests 新记录插入成功!"; $stmt -> close(); $conn -> close(); ?></body></html>

风儿风光

给变量加上{}

Sun丶发发

你可以打印一下sql,我觉得PHP会把你的变量当成普通字符串

BelongLMF

他插入的不是null而是''

美橙达

http://blog.csdn.net/u011132987/article/details/48654253

靠谁不如靠自己

给变量加{}
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答