PHP热身

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 0.环境说明win10 xampp phpstormxampp带了apache和mysql以及phpmyadmin1.配置mysql:修改默认编码关mysqlxampp/mysql/bin/my.

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

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
SQL Web App开发 前端开发
php热身2:CRUD with Ajax
这次热身是一个会员管理系统,包括会员注册、登录、资料修改功能,使用ajax技术 1.建表 use common_module; create table if not exists member( user_id int auto_increment primary key, email varch...
1246 0
|
7月前
|
关系型数据库 MySQL PHP
PHP 原生操作 Mysql
PHP 原生操作 Mysql
81 0
|
7月前
|
关系型数据库 MySQL 数据库连接
PHP 原生连接 Mysql
PHP 原生连接 Mysql
107 0
|
7月前
|
关系型数据库 MySQL Unix
PHP MySql 安装与连接
PHP MySql 安装与连接
125 0
|
3月前
|
关系型数据库 MySQL PHP
|
3天前
|
PHP
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
|
7月前
|
关系型数据库 MySQL 数据库连接
PHP 原生操作 Mysql 增删改查案例
PHP 原生操作 Mysql 增删改查案例
87 0
|
2月前
|
监控 关系型数据库 MySQL
PHP与MySQL的结合:实现局域网上网行为监控软件的数据库管理
在当今信息化时代,网络安全日益成为重要的话题。为了有效监控和管理局域网上网行为,开发一个基于PHP和MySQL的数据库管理系统是一个理想的选择。本文将介绍如何结合PHP和MySQL,开发一款简单而高效的局域网上网行为监控软件,并重点关注数据库管理方面的实现。
184 0
|
8月前
|
运维 关系型数据库 MySQL
【运维知识进阶篇】集群架构-Nginx实现基础web架构(Linux+Nginx+PHP+Mysql)(二)
【运维知识进阶篇】集群架构-Nginx实现基础web架构(Linux+Nginx+PHP+Mysql)(二)
201 0
|
8月前
|
消息中间件 NoSQL 关系型数据库
Linux安装 OpenResty、Nginx、PHP、Mysql、Redis、Lua、Node、Golang、MongoDB、Kafka等
Linux安装 OpenResty、Nginx、PHP、Mysql、Redis、Lua、Node、Golang、MongoDB、Kafka等
103 0