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

  • 相关阅读:
    接口详解
    可空类型
    初学泛型
    结构和类
    触发器
    学习C#异常处理机制
    静飘移
    《Hashtable(散列表)》 集合
    自定义集合类
    Automation伺服程式無法産生物件
  • 原文地址:https://www.cnblogs.com/zjutzz/p/5493974.html
Copyright © 2011-2022 走看看