写第一个PHP项目——《博客系统模型》,心得与体会
2017-08-30 17:13
274 查看
搭建环境,基本语法之类的不说
1.
PHP代码的模块分类:
Html画图本身
————————POST或GET接口,接受用户操作
————————————————————————数据库查询Sql语句书写
————————————————————————————————————Query语句返回的数据处理
——————————————————————————————————————————————————打印出echo语句,完成动态绘图
2.
这种写法中
%% 两个百分号,夹着的意思
的意思。
3.
index.php页。
最上端的<form> </>
应该设置的 action ——————>为 "index.php"
4.
中的 DEC写错了。
应该是
DEC ————>错误
DESC————>正确 (逆序的意思)
5.
两种写法,本质上都可以。
具体要弄清楚,就去看 单引号、双引号在PHP中的区别。
http://www.cnblogs.com/llsun/archive/2012/07/16/2593027.html
6.
iconv_substr( ... , ... , ... , ... )
方法的作用:??
第1个参数
原字符串
第2个参数
起始截取位置
第3个参数
末尾截取位置
左闭右开区间。
第4个参数
文字的编码排版集
iconv_substr( )
的提示
str : string ,
offset : int ,
[ length : int | string = ' iconv_strlen ( $str , $charset ) ' ] ,
[ charset : string = ' ini_get ( " iconv.internal_encoding " ) ' ]
这样的参数提示。
[ ] 方括号,应该是 表示里面的东西是一块的, 是打包的
int | string , 表示类型待定, 会是 整数型 和 字符串型 中的一款。
charset : string = ' 方法名得到 字符集类型 ' , 表示的是 如果没有传进值, 则默认为后面方法里的取值。 = 等号,表示当不传时的默认取值。
噢啦!!写完10条后回头写这个!
撒花!!
7.
提示错误:
Notice: iconv_substr(): Wrong charset, conversion from `UTF8' to `UCS-4LE' is not allowed in F:\Php
Projects\blog\index.php on line 70
改成下面这样,则一切正常:
多加了一条横杠:
参见
之后,则一切正常。
能够正常显示。
8.
这一方法,会每次调用 index.php 都自动运行。
区别只在于 $_GET['keys'] 这个方法
的值
是否为Empty。
9.
对于
中
action
写 "index.php"
的结果
和
写"" (空着)
的结果
一模一样的情况的解释:
《 不写action的情况下form提交到的位置》
http://blog.csdn.net/tengdazhang770960436/article/details/6923931
在PHP中如果不写清楚要提交到的action的位置的话,那么系统默认的是当前的页面
10.
PHP
的$_GET方法
——————————>是接收 一切 “ mehod = "get" ” 的URL传值的 URL 中的值。
——————————————————> form这种表单形式, 其实本质上 也是生成了 www.xyz.com/index.php ? a= 1 & b=2 这样形式的 URL 。
列举形式:
二、$_Get方法
(1)获取通过URL的传值
Example 1
新建两个PHP文件,1.php,2.php
1.php代码:
2.php代码:
(2)$_Get方法动态传值
第二种形式是 :
:::::
预定义的 $_GET 变量用于收集来自 method="get" 的表单中的值。
从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送信息的量也有限制。
form.html 文件代码如下:
当用户点击 "Submit" 按钮时,发送到服务器的 URL 如下所示:
可明显看到:
最后走的都是 URL 的路线————————> 拼接成 URL 。
这就是背后的原理。
11.
update 语句的用法
和
set 语句的用法
【足以可见 Sql 语言,也是一门有自己语法的语言】。
12.
设置主键的方式。
以及主键非空
以及主键自增
以及主键独一无二。
尽在 PHPStorm 和 收藏夹。
13.
和
的区别:
——————————在于
第一行可以正常运行,
第二行不可以正常运行
第一行用 单引号 ' ' 来锁住 $ title 和 $ contents 的值, (参见 收藏夹—— 单引号、双引号的区别)
来不使里面的 【中文字】【空格】【换行】等跑出来。——————进而可以正常按照文本形式,进行数据库 Query操作。
第二行,【中文字】【空格】【换行】会被编码拆分,以及做各种转义处理。
就会报 “测试6” not in filedList
这样的错误。
而第一行正常运行无误。
14.
和
这两句Query的返回值,是不一样的。
容易出错场景:
视为都返回 query_result 。
然后用 $rs 去盛装 query_result 的 fetch_aaray 。
——————————————————————————————>结果导致,类型转换出错。
因为 mysqli_query ( $link , $query )
的
返回结果 为:
boolean | mysqli_result
即,在 ——————> select 命令时,返回的是 mysqli_result
而在 ————————> update 命令时,返回的是 true or false , 用来指示 update更新数据 是否成功
1.
PHP代码的模块分类:
Html画图本身
————————POST或GET接口,接受用户操作
————————————————————————数据库查询Sql语句书写
————————————————————————————————————Query语句返回的数据处理
——————————————————————————————————————————————————打印出echo语句,完成动态绘图
2.
"select * from blog WHERE title like %$key% ORDER BY id DEC limit 5"
这种写法中
%% 两个百分号,夹着的意思
的意思。
3.
index.php页。
最上端的<form> </>
应该设置的 action ——————>为 "index.php"
4.
"select * from blog WHERE title like %$key% ORDER BY id DEC limit 5"
中的 DEC写错了。
应该是
ORDER BY id DESC
DEC ————>错误
DESC————>正确 (逆序的意思)
5.
$w = "title like %$key% ";
$w = "title like '%$key%' ";
两种写法,本质上都可以。
具体要弄清楚,就去看 单引号、双引号在PHP中的区别。
"select * from blog WHERE title like %$key% ORDER BY id DEC limit 5"5.
再谈PHP单引号和双引号区别
http://www.cnblogs.com/llsun/archive/2012/07/16/2593027.html6.
iconv_substr($rs['contents'], 0, 30, "UTF-8")
iconv_substr( ... , ... , ... , ... )
方法的作用:??
第1个参数
原字符串
第2个参数
起始截取位置
第3个参数
末尾截取位置
左闭右开区间。
第4个参数
文字的编码排版集
iconv_substr( )
的提示
str : string ,
offset : int ,
[ length : int | string = ' iconv_strlen ( $str , $charset ) ' ] ,
[ charset : string = ' ini_get ( " iconv.internal_encoding " ) ' ]
这样的参数提示。
[ ] 方括号,应该是 表示里面的东西是一块的, 是打包的
int | string , 表示类型待定, 会是 整数型 和 字符串型 中的一款。
charset : string = ' 方法名得到 字符集类型 ' , 表示的是 如果没有传进值, 则默认为后面方法里的取值。 = 等号,表示当不传时的默认取值。
噢啦!!写完10条后回头写这个!
撒花!!
7.
iconv_substr($rs['contents'], 0, 30, "UTF8");
提示错误:
Notice: iconv_substr(): Wrong charset, conversion from `UTF8' to `UCS-4LE' is not allowed in F:\Php
Projects\blog\index.php on line 70
改成下面这样,则一切正常:
iconv_substr($rs['contents'], 0, 30, "UTF-8");
多加了一条横杠:
参见
Wrong charset, conversion from `UTF-8' to `UCS-4LE' is not allowedhttps://stackoverflow.com/questions/1602310/zend-framework-and-string-covertation-using-iconv
1down vote | the iconv library was expecting a string encoded in 'UCS-4LE', but received one that it detected as 'UTF-8'. You probably have a different default encoding on the new server. Try passing the third parameter to the constructor (as 'utf-8'). |
能够正常显示。
8.
if (!empty($_GET['keys'])) { $key = $_GET['keys']; echo $key ."<br/><br/>"; $w = "title like '%$key%' ";//————————>搜索标题。————————>标题中有 ??????key??????? 这样的字符的项。 (如果单纯 %% 则显示所有不为Null的项。) } else { $w = 1; }
这一方法,会每次调用 index.php 都自动运行。
区别只在于 $_GET['keys'] 这个方法
的值
是否为Empty。
9.
对于
<form action="" method="get" style='align:"right"'>
中
action
写 "index.php"
的结果
和
写"" (空着)
的结果
一模一样的情况的解释:
《 不写action的情况下form提交到的位置》
http://blog.csdn.net/tengdazhang770960436/article/details/6923931
在PHP中如果不写清楚要提交到的action的位置的话,那么系统默认的是当前的页面
10.
PHP
的$_GET方法
——————————>是接收 一切 “ mehod = "get" ” 的URL传值的 URL 中的值。
——————————————————> form这种表单形式, 其实本质上 也是生成了 www.xyz.com/index.php ? a= 1 & b=2 这样形式的 URL 。
列举形式:
二、$_Get方法
(1)获取通过URL的传值
Example 1
新建两个PHP文件,1.php,2.php
1.php代码:
<a herf="2.php?id='10'&name='xiaoqiang'">传值</a> 在1.php中单击超链接传值
2.php代码:
<?php echo "$_Get['id']"; echo "$_Post['name']"; ?>
(2)$_Get方法动态传值
<a href="newfile.php?page=<?php echo "java";?>&pageone=<?php echo "1";?>">GET方法动态传值</a>
第二种形式是 :
:::::
$_GET 变量
预定义的 $_GET 变量用于收集来自 method="get" 的表单中的值。从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送信息的量也有限制。
实例
form.html 文件代码如下:<html> <head> <meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> </head> <body> <form action="welcome.php" method="get"> 名字: <input type="text" name="fname"> 年龄: <input type="text" name="age"> <input type="submit" value="提交"> </form> </body> </html>
当用户点击 "Submit" 按钮时,发送到服务器的 URL 如下所示:
http://www.runoob.com/welcome.php?fname=Runoob&age=3
可明显看到:
最后走的都是 URL 的路线————————> 拼接成 URL 。
这就是背后的原理。
11.
$sqlup = "update blog set hits=hits+1 WHERE id = '$rs'";
update 语句的用法
和
set 语句的用法
【足以可见 Sql 语言,也是一门有自己语法的语言】。
12.
设置主键的方式。
以及主键非空
以及主键自增
以及主键独一无二。
尽在 PHPStorm 和 收藏夹。
13.
$sql = "update blog set title= '$title' ,contents= '$contents' WHERE id=$hid ";
和
$sql = "update blog set title= $title ,contents= $contents WHERE id=$hid ";
的区别:
——————————在于
第一行可以正常运行,
第二行不可以正常运行
第一行用 单引号 ' ' 来锁住 $ title 和 $ contents 的值, (参见 收藏夹—— 单引号、双引号的区别)
来不使里面的 【中文字】【空格】【换行】等跑出来。——————进而可以正常按照文本形式,进行数据库 Query操作。
第二行,【中文字】【空格】【换行】会被编码拆分,以及做各种转义处理。
就会报 “测试6” not in filedList
这样的错误。
而第一行正常运行无误。
14.
$sqlup = "update blog set hits=hits+1 WHERE id = '$id'";
mysqli_query($conn, $sqlup);
和
$sql = "select * from blog where id= $id ";
mysqli_query($conn, $sql);
这两句Query的返回值,是不一样的。
容易出错场景:
视为都返回 query_result 。
然后用 $rs 去盛装 query_result 的 fetch_aaray 。
——————————————————————————————>结果导致,类型转换出错。
因为 mysqli_query ( $link , $query )
的
返回结果 为:
boolean | mysqli_result
即,在 ——————> select 命令时,返回的是 mysqli_result
而在 ————————> update 命令时,返回的是 true or false , 用来指示 update更新数据 是否成功
相关文章推荐
- 第一个软件项目后的心得体会
- 第一个php网站的一些心得和体会
- PHP半年了,已经可以独立支撑项目,几点心得记录
- 项目管理心得:一个项目经理的个人体会、经验总结
- 谈谈最近做项目和参赛的心得体会
- 项目管理心得:一个项目经理的个人体会、经验总结
- 软件项目管理心得体会
- 项目管理心得:一个项目经理的个人体会、经验总结
- PHP缓存工具(开源第一个项目)
- 项目管理心得:一个项目经理的个人体会、经验总结
- 持续一年之久的项目终于结项啦!总结一下这一年来的心得体会!
- 刚开始工作第一个项目体会
- 项目需求和客户交流的心得体会
- 我的第一个游戏FoodieThebug完成之后的心得体会
- webservice 简单项目之心得体会
- 项目需求和客户交流的心得体会
- 小项目心得体会.对HTTP协议格式更深的理解.
- php-mvc新闻项目体会-1
- 项目管理心得:一个项目经理的个人体会、经验总结
- 项目管理心得:一个项目经理的个人体会、经验总结