insert数据库的问题(PHP)
【PHP语句如下】:
$query = " insert into tbshop('notice_id','notice_content', 'notice_adminid')
values(null, '".$POST['content']."','".$_SESSION['admin']
['admin_name']."') " ;
【问题说明】
这语句意思,把一个SQL语句,保存在变量中,便于调用。
但是我被这些“单引号”和“英语句号”搞糊涂了!
【问题如下:】
(1)第一个字段“notice_id”,他的值为什么是“null”,也就是“什么也没有”?作者写“null”,目的是什么??null可以实现id序号自动增加?
(2)第二个字段“notice_content”,他的值“$POST['content']”为什么左右套一对“单引号”,里面又套一对“双引号”?我理解为,左右套一个单引号就可以了,为什么还要套一对“双引号”?
(3)第二个字段“notice_content”,他的值“$POST['content']”为什么左右各有一个“英文句号”?
(4)第三个字段“notice_adminid”,他的值“$_SESSION['admin']['admin_name']”,为什么会有两个值:admin和admin_name?是不是把这两个值组合起来,成为一个字符串?
(5)上面语句中,三个字段,存入数据库时,是什么格式的?是字符串格式吗?
1、你的回答是正确的,null是可以实现id的自动增加。前提是,你在设计数据库的时候,要使改建自动增加,可以写aotu_increase.
2、第二个问题和第三个问题其实是一个问题。
3、$_POST['content']是一个post变量,他左右的两个 . 是表示连接字符串用的:$str1 . $str2 表示吧$str1和$str2连接起来。
4、notice_adminid的值是一个数组,新建一个session变量,他的名字是admin,可以这么写:$_SESSION['admin'],要给他赋值的话,就直接写=就可以了,但是,如果将一个数组付给他的话,就得如$_SESSION['***']['***']这样访问了。所以,$_SESSION['admin']['admin_name']的意思是:访问$_SESSION['admin']变量。但是他是一个数组,就要接着写下标,访问数组$_SESSION['admin']的admin_name值,说的复杂就只这样,说得简单点就是一个二维数组的访问。其实$_SESSION本身就是一个数组,要是它的键值也是数组,那他就是一个二维数组了。
以上的这个语句你可以这样理解(如图),良好的代码排版可以有助于学习。如果你是初学,你因该好好的养成这个习惯。
参考资料:原创