zoukankan      html  css  js  c++  java
  • PHP热身

    0.环境说明
    win10 xampp phpstorm
    xampp带了apache和mysql以及phpmyadmin

    1.配置mysql:修改默认编码
    关mysql
    xampp/mysql/bin/my.ini
    在[mysqld]后添加character-set-server=utf8
    在[mysql]后添加default-character-set=utf8
    重启mysql

    1.1配置php.ini,改时区为上海:

    date.timezone=Asia/Shanghai
    

    1.2配置php.ini,修改错误级别:

    error_reporting=E_ALL
    

    2.建表
    给个例子:

    use common_module;
    create table if not exists contacts(
    user_id int auto_increment primary key,
    email varchar(60) comment '邮箱',
    name varchar(60) comment '姓名',
    sex tinyint(1) comment '性别 1男 2女',
    address varchar(60) comment '地址',
    phone varchar(20) comment '手机号'
    )CHARSET=utf8;
    

    到phpmyadmin里面导入即可

    3.开phpstorm,建项目

    4.PDO
    php里面用mysql,现在应该使用PDO了。时代是在前进的。不要畏葸不前。
    xampp里已经自带配置好了pdo,写代码的时候注意mysql不要拼错否则报错说没有pdo的驱动。

    prepare statement的一些要注意的地方
    别用bindParam和bindValue参数。都找不到了,而且有bug。用数组吧。

    例子1:select语句,选出某些符合条件的结果。条件使用?来处理,条件的具体值使用数组告知:

    # 建立数据库连结,创建PDO对象
    $dsn = "mysql:host=localhost;dbname=common_module";
    $user = "root";
    $pass = "";
    $pdo = new PDO($dsn, $user, $pass);
    
    # 编写SQL语句,进行查询
    $sql = "select * from contacts where user_id>?";
    $stmt = $pdo->prepare($sql);
    $id_threshold = 4;
    $stmt->execute(array($id_threshold));
    $result = $stmt->fetchAll();
    # 若同一SQL语句有不同的查询值取值,那么可以再次使用这个stmt
    
    # 输出查询结果
    print_r("<pre>");
    print_r($result);
    print_r("<pre>");
    

    相应地,执行insert操作的例子如下:

    # 建立数据库连连接,创建PDO对象
    $dsn = "mysql:host=localhost;dbname=common_module";
    $user = "root";
    $pass = "";
    $pdo = new PDO($dsn, $user, $pass);
    
    # 编写SQL语句,进行查询
    $sql = "insert into contacts (email, name, sex, address, phone) values (?, ?, ?, ?, ?)";
    $stmt = $pdo->prepare($sql);
    $email = "ss@ss.com";
    $name = "keeper";
    $sex = 1;
    $address = "北京市西城区AB街33号";
    $phone="18812345678";
    $status = $stmt->execute(array($email, $name, $sex, $address, $phone));
    
    # 处理查询结果
    if($status){ #sql执行成功,则获取其执行结果并进一步处理
        $result = $stmt->fetchAll();
        # 输出查询结果
        print_r("<pre>");
        print_r($result);
        print_r("<pre>");
    }else{
        echo "执行出错!";
    }
    

    显然,上面的select和insert操作都使用了prepare statement的方式,既保证高性能,又保证安全防注入。

    5.使用smarty模版
    smarty不是唯一的选择,但是是容易上手的选择。很多cms系统都使用了和smarty很相似的语法。
    使用smarty3,而不是过时的smarty2.直接把demo目录下所有文件和文件夹和复制到你的项目中,并把libs目录复制到apache根目录。
    稍微正规一点的话,应该考虑入口文件,对url进行解析后进行请求分发,分配到不同的业务逻辑代码上。。。但是为了简单起见,这里就先不使用分发页面了。。(需要参考thinkphp等框架看看人家是怎么配置的)

    (smarty=new Smarty; )smarty->assign('var_name', 'var_value');
    $smarty->display('target_template_page.tpl');

    6.使用bootstrap
    都什么年代了,前端虽然自己不会写,但起码要知道bootstrap的存在要用它。用bootstrap3.

    7.一个只有增删改查模块的简陋应用
    终于进入正题了,一个只具有增删改查功能的简陋应用:增加联系人,删除联系人,修改联系人,查看联系人。
    是根据《Web开发的平民英雄:php+mysql》上的例子修改而来。原书中使用最简陋的代码编写而成。本代码改进如下:
    使用smarty模版;使用PDO操作数据库;使用bootstrap美化界面;精简数据表。

    下载链接
    http://pan.baidu.com/s/1mhLwj1Y

  • 相关阅读:
    jchdl
    jchdl
    UVa 10256 (判断两个凸包相离) The Great Divide
    UVa 11168 (凸包+点到直线距离) Airport
    LA 2572 (求可见圆盘的数量) Kanazawa
    UVa 10652 (简单凸包) Board Wrapping
    UVa 12304 (6个二维几何问题合集) 2D Geometry 110 in 1!
    UVa 10674 (求两圆公切线) Tangents
    UVa 11796 Dog Distance
    LA 3263 (平面图的欧拉定理) That Nice Euler Circuit
  • 原文地址:https://www.cnblogs.com/zjutzz/p/5493974.html
Copyright © 2011-2022 走看看