第二周总结--王皓宇

阅读数:2310 发布时间:2016-09-16 22:12:47

作者:w4why 标签: 王皓宇 w4why nginx php mysql

第二周总结

来到秀野堂的第二周,说短也短,说长也长,每天都是和满满的知识点相伴,其实也是很充实的,这一周接受到了我以前没接触过的后端,包括LNMP (Linux/Nginx/Mysql/Php)环境的配置和搭建,为了构建一个舒适的开发环境,踩过无数次的坑,电脑了重装了系统才了解到了精髓:一定要了解每一个Linux配置的指令,不是按照教程一个劲瞎折腾,要做到知己知彼。
带上一个标准nignx的配置。

                      server{listen 8080;  

                      listen [::]:8080;  

                      server_name localhost;  

                      root /var/www/wanghaoyu.com;  

                      index index.html index.php;  

                      location / {  

                      try_files $uri $uri/ =404;  

                      }  

                      location ~ .php$ {  

                      include snippets/fastcgi-php.conf;  

                      fastcgi_pass unix:/run/php/php5.5-fpm.sock;
                      }
                    }  

Mysql相关

关于Mysql操作,虽然有了workbench,但是我还是建议大家多使用命令行来操作数据库,这样才不会忘记一个操作的本质。
在数据库操作中很多操作,但是其实只有两大类,对数据库操作和对表内内容进行操作,这样就方便记忆,也不容易记混了。
常用mysql操作
还有补充的一点:在数据库创建的时候不要忘记编码,从数据库编码到表的编码必须和浏览器的编码格式一致。

PHP相关

在这里要强调的首先是和数据库的链接,php和数据库的链接方式有许多种,包括sqli和pdo,在我们的实战中使用的是PDO链接方式,注意它语法的不同。
$pdo = new PDO($dsn,$user,$pwd); $query = "select * from tableName"; $result = $pdo->prepare($query); $result = excute(); 还有一个小技巧:在做SQL的时候可以先在数据库跑跑看是否能拿到数据,在返回到PHP把相关变量替换。
变量需要‘.$str.’,来分割开,这样程序才可以识别这是变量。 如果是单引号‘$str’,那么$str就不会被解析为变量,当做字符串处理,如果需要当做变量,需要这样:'.$str.' 如果是是双引号"$str",那么$str就会被解析为变量,当做变量处理。

项目实战相关

本周我们三人一组,组成了一个开发小组,我和一个队员负责开发用户系统,里面业务需求有:用户注册,用户登录,用户信息修改,用户登录界面。在熟悉使用数据库的情况下,我们通过使用表单交互,完成了任务,在另外一个小伙伴搭建留言板的时候我们野参与到其中,代码毕竟不是自己写的,所以在二次开发的过程中遇到了各种问题,所以得出来的结论是以后在项目里尽量要让自己的代码写上注释,这样才能让后人更好的维护和开发你的代码。
在项目开发中以下几点也是非常重要的:

  1. 文件命名
  2. 变量命名
  3. 数据库命名
  4. 业务逻辑描述
  5. 调试方法和排错操作逻辑
  6. 代码上传和合并

附上留言板的核心代码:递归思想。

            function tree($id, $dep)
            {
              $connection_string = "mysql:host=192.168.0.106;dbname=xyt_db";
              $db = new PDO($connection_string, 'root', '123123');
              $db->query("set names utf8");
              $sql = "select * from msg_board where fid = $id";
              $conn = $db->query($sql);
              $rs = $conn->fetchAll();
              $rows = count($rs);
              $str = '';
              for ($i=0; $i < $rows; $i++) {
                for ($j=0; $j < ($rs[$i]['dep']); $j++) {
                  $str .= "    ";
                }
                $str  .= "<a href='#'>";

                $sql4  = "select u.user_name from msg_board as m inner join user_msg as u on m.uid = u.id where m.id = '".$id."'";
                $conn4 = $db->query($sql4);
                $rs4   = $conn4->fetch();
                $str  .= $rs4['user_name'].'</a>';

                $str  .= '回复';
                $str  .= "<a href='#'>";

                $sql2  = "select u.user_name from msg_board as m inner join user_msg as u on m.uid = u.id where m.id = '".$rs[$i]['fid']."'";
                $conn2 = $db->query($sql2);
                $rs2   = $conn2->fetch();
                $str  .= $rs2['user_name'].'</a>'.':';

                echo $str.$rs[$i]['content']."=== <a href=pub.php?uid=&dep=".($rs[$i]['dep'] + 1)."&fid=".$rs[$i]['id'].">reply</a><br>";
                $str = '';
                tree($rs[$i]['id'], $rs[$i]['dep']);
              }
            }

最后献上 阴雨绵绵下绽放的青色牵牛花一朵. img

Date 类型:
数据类型
描述
DATE() 日期。格式:YYYY-MM-DD 注释:支持的范围是从 '1000-01-01' 到 '9999-12-31'
DATETIME() 日期。格式:YYYY-MM-DD *日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS 注释:支持的范围是从 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'
TIMESTAMP() *时间戳。TIMESTAMP 值使用 Unix 纪元('1970-01-01 00:00:00' UTC) 至今的描述来存储。格式:YYYY-MM-DD HH:MM:SS 注释:支持的范围是从 '1970-01-01 00:00:01' UTC 到 '2038-01-09 03:14:07' UTC
TIME() 时间。格式:HH:MM:SS 注释:支持的范围是从 '-838:59:59' 到 '838:59:59'
YEAR() 2 位或 4 位格式的年。 注释:4 位格式所允许的值:1901 到 2155。2 位格式所允许的值:70 到 69,表示从 1970 到 2069。

相关文章推荐: