为了账号安全,请及时绑定邮箱和手机立即绑定

PHP操作MYSql问题

/ 猿问

PHP操作MYSql问题

jugge 2017-06-21 12:51:45
<?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值

查看完整描述

18 回答

?
灬紫羽

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

查看完整回答
13 反对 回复 2017-06-22
点击展开后面6
?
qq_ty_1

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

查看完整回答
4 反对 回复 2017-08-18
?
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)";


查看完整回答
3 反对 回复 2017-06-22
?
qq_123_1563591689

php语言比较简单

查看完整回答
2 反对 回复 2017-10-07
?
天使之翼死神之镰

null改成NULL试试看

查看完整回答
1 反对 回复 2017-06-22
?
Caballarii

你确定数据库里

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

这样插入的数据是null???

查看完整回答
1 反对 回复 2017-06-21
?
qq_慕斯卡4054824

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


查看完整回答
反对 回复 2019-07-18
?
ChengMingC

兄弟,666

查看完整回答
反对 回复 2019-04-20
?
凯旋132

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

查看完整回答
反对 回复 2019-04-15
?
林子懿

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

查看完整回答
反对 回复 2019-03-05
?
码农3484829

你可以这样{$name}

查看完整回答
反对 回复 2018-11-08
?
ZM77

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

查看完整回答
反对 回复 2018-08-02
?
筑梦之路

<!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>


查看完整回答
反对 回复 2018-06-28
?
风儿风光

给变量加上{}

查看完整回答
反对 回复 2017-12-15
?
Sun丶发发

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

查看完整回答
反对 回复 2017-11-26
?
BelongLMF

他插入的不是null而是''

查看完整回答
反对 回复 2017-09-08
?
美橙达

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

查看完整回答
反对 回复 2017-08-18
?
靠谁不如靠自己

给变量加{}

查看完整回答
反对 回复 2017-07-13

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信