重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
你试试看使用模板吧,所有的界面设计都是针对一个静态网页进行,这个静态网页里面所有你需要的内容都使用PHP的变量(或者你自己规定的其它特殊格式)来代表,设计布局的时候都是对这么静态网页进行操作。
吉林网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、自适应网站建设等网站项目制作,到程序开发,运营维护。创新互联公司成立与2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司。
而网站并不直接向外显示网页,网页的所有内容有PHP程序从数据库里面获取,对网页模板里面的变量进行替换后输出。
例如你的首页模板可以命名为index.htm,实际使用index.php来显示首页,PHP的流程是这样的:
?php
//链接数据库,获取各类数据到变量中
$news='例如新闻内容';
//获取模板
$html=file_get_content('index.htm');
//替换模板中的变量
$html=str_replace('--news--',$news,$html);
//输出模板
echo $html;
?
前边介绍了负载均衡,mysql同步,接下来介绍tp6分布式部署多个数据库,实现读写分离。
tp6的分布式部署读和写仍然是一个系统,这里我们分开操作,给用户展示的就是从数据库,后端添加文章就是主库,然后同步到从库。
1、配置数据库链接参数
目标:实现随机使用数据库展示信息,只是读操作。
测试:前台可以读取表中内容(存放的不一致),查看是否是随机显示的。
打开.env文件进行编辑
说明:
2、编辑database.php
找到deploy设置为1分布式部署,下边不要改,都是读,写入的也就是后端的我们单独建站连接主库。
配置完成,tp6使用的是mt_rand取随机数判断使用哪个数据库。
3、数据库交互写操作
比如浏览量没必要每次都去更新数据库,可以先使用redis缓存,存够1000的整数倍,再去更新数据库。
4、后台独立,也就是写
可以前后端分离,单独做一个网站(没有前端)使用ip访问或者独立的域名连接后台。
5、上传附件(jquery ajax跨域上传)
使用了nginx负载均衡,肯定是多个一样的网站,如果图片存放到一个站,别的就不能访问了,可以单独设置一个附件(压缩包,图片等)服务器,可以使用二级域名连接,这就要求我们上传附件的时候,是上传到附件服务器。
jqueryURL
API控制器apdpic方法
说明:
也可以先传到后台服务器然后使用(php)ftp上传,或者是通过curl上传到附件服务器,感觉那样毕竟麻烦,直接设置跨域会比较简单。
也测试了使用jsonp跨域,但是不能上传附件。
6、thinkphp6实现读写分离(在一个站点)
我个人是不喜欢这样的,负载均衡应该是均衡地读,也就是前台单独一个站点,后端的写是另一个独立的站点,看个人喜好吧。
独立后台的优点:可以提升安全性,因为我们的后台网址是不公开的,避免用户猜测一些后台的信息。
.env配置按照1所述编辑,默认第一个是主库。
database.php
愿大家在新的一年心想事成,万事如意!!!
首先搭建一个PHP环境,我用的wamp
然后比如你的数据库位置是本地localhost
数据库用户名是root
数据库密码是123456
数据库名是mydb
数据库里有个表mytab
有3个字段
id(主键) name sno
1 张三 123
2 李四 456
然后在项目根目录,新建一个文件:index.php
?php
//连接数据库
$con=mysqli_connect("localhost","root","123456","mydb");
//SQL语句
$sql="select * from mytab;";
//执行SQL语句,结果保存到$arr
$obj=mysqli_query($con,$sql);
$arr=mysqli_num_rows($result);
?
html
head
meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
title实现最简单的php网页+mysql查询功能/title
/head
body
?php
echo "pre";
print_r($obj);
?
/body
/html
之后就能够看到结果了
数据库是SQLserver
?
if(isset($_GET['username']))
{
session_start();
$errormsg = "";
$input['username'] = strtolower(trim($_GET['username']));
if($errormsg == "")
{
include("db_link.php");//你自己SQL数据库所在路径
$sql = "select
user_id,
username,
status
from guestbook
where username = '".$input['username']."' and status = 1";
$result = mysql_query($sql, $link) or die('Query database failed');
$num = mysql_num_rows($result);
if($num 1)
{
$errormsg = "用户名不正确,请重新登录!";
}
else
{
$row = mysql_fetch_array($result);
if($row['username'] == $input['username'])
{
$_SESSION['s_user_id'] = $row['user_id'];
$_SESSION['s_username'] = $row['username'];
$_SESSION['s_status'] = $row['status'];
$_SESSION['time_last_load'] = time();
?
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
html
head
title管理员登录/title
style
button,input{font-size:12px;padding-top:2px;font-family : Arial, Helvetica, sans-serif;}
a:link:{color:#666666;}
a:visited:{color:#666666;}
a:hover:{color:#000000}
/style
/head
body style="font-size: 12px;"
table width="280" border="0" cellspacing="0" cellpadding="0" align="center" style="font-size: 12px;border:1px solid #639ECE;"
trtd height="10"/td/tr
trtd height="40" align="center"登录成功!/td/tr
trtd height="10"/td/tr
trtd height="22" align="right" bgcolor="#EFFBFF"a href="javascript:void(null);" onclick="window.close();"关闭窗口/a /td/tr
/table
/body
/html
?
}
else
{
$errormsg = "用户名不正确,请重新登录!";
}
}
}
if($errormsg "")
{
?
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
html
head
title管理员登录/title
style
button,input{font-size:12px;padding-top:2px;}
/style
/head
body style="font-size: 12px;"
table width="280" border="0" cellspacing="0" cellpadding="5" align="center" style="font-size: 12px;border:1px solid #639ECE;"
trtd height="10" colspan="2"/td/tr
form action="userlogin.php"
tr
td width="60" align="right"用户名:/td
td width="220"input type="text" name="username" value="?=$input['username']?"/td
/tr
tr
td/td
td align="center" input type="submit" value=" 登录 "/td
/tr
/form
tr
td height="10" colspan="2"/td
/tr
tr
td height="22" colspan="2" bgcolor="#EFFBFF"?=$errormsg?/td
/tr
/table
/body
/html
?
}
}
else
{
?
!--登录页面--
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
html
head
title管理员登录/title
style
button,input{
font-size:12px;
padding-top:2px;
}
/style
/head
body
table width="280" border="0" cellspacing="0" cellpadding="5" align="center" style="font-size: 12px;border:1px solid #639ECE;"
trtd height="10" colspan="2"/td/tr
form action="userlogin.php"
tr
td width="60" align="right"用户名:/td
td width="220"input type="text" name="username"/td
/tr
tr
td/td
td align="center" input type="submit" value=" 登录 "/td
/tr
/form
trtd height="10" colspan="2"/td/tr
/table
/body
/html
?
}
?