php+数据库锁定 数据库 php-成都创新互联网站建设

关于创新互联

多方位宣传企业产品与服务 突出企业形象

公司简介 公司的服务 荣誉资质 新闻动态 联系我们

php+数据库锁定 数据库 php

php中如何避免mysql数据库死锁

mysql一般不会死锁,除非程序有问题。性能优先事务不优先的数据库(设置)不要追求可靠性万无一失。

成都创新互联自2013年起,是专业互联网技术服务公司,拥有项目成都网站制作、成都网站设计、外贸营销网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元文昌做网站,已为上家服务,为文昌各地企业和个人服务,联系电话:028-86922220

网站性能问题主要是数据库量大了以后,查询扫描硬盘而产生的。其它性能不要太在意。编写代码的时候不要坚持性能原则,而是坚持可用性原则。初学者编写代码通常容易面向性能,但是一个项目的一个页面几百、几千行代码是很常见的。要面向可用性、可维护性、可读性。这是项目原则。你看看java语言。对于网站,除了查询扫描硬盘而产生的时间延迟,其它是不管的,只要不算有问题就可以。

连接方式是否为永久连接,在访问量未达到高并发之前,还是非永久链接更好。非永久连接的资源消耗是不大于永久连接的,因为mysql是把连接权限缓存的,不会多次扫描硬盘,性能是可执行级别的而不是查找数据级别的。在访问量达到高并发之后,性能问题的原因是多方面的,多环节的,是否为永久连接不是主要原因。

php 如何锁表

在进行数据表检查或修补时,可以先将数据表锁定,可确保数据表的安全:

mysqlLOCK TABLE tbl_name READ;

mysqlFLUSH TABLES;

将数据表锁定后再进行检查或修补的工作。完成后再解除锁定:

mys()qlUNLOCK TABLES;

//LOCK TABLE tbl_name READ表示要锁定成只读状态,在这个状态下用户只能读取数据表,不能写入。

LOCK TABLE tbl_name WRITE则是更严格的锁定,用户不能读取也不能写入。

PHP代码 设置用户登陆限制,3次错误锁定账户5分钟

$_SESSION['num'] += 1; if($_SESSION['num'] = 3){此处操作数据库 帐号状态改为锁定 并记录当前锁定时间。

if($_SESSION[$ip] 3){

if(isset($_POST['password']) $_POST['password'] == '123456'){

$_SESSION['ok'] = 1;

$_SESSION[$ip] = 0;//登录成功,IP登录次数归零

header('location:?');}

if(!isset($_SESSION['ok'])){

$_SESSION[$ip] = $_SESSION[$ip] + 1;//累积登录错误次数 exit('form method="post"

password:input type="password" name="password" /input type="submit" value="login" /

/form');}

// cookie保存时间,分钟

$lifeTime = 1800;

setcookie(session_name(), session_id(), time() + $lifeTime, "/");   }

else

{echo '你已经输错3次密码,请等5分钟再试试';}

//获取用户真实IP

function getIp(){  $onlineip='';

if(getenv('HTTP_CLIENT_IP')strcasecmp(getenv('HTTP_CLIENT_IP'),'unknown')){

$onlineip=getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR')strcasecmp(getenv('HTTP_X_FORWARDED_FOR'),'unknown')){

$onlineip=getenv('HTTP_X_FORWARDED_FOR'); } elseif(getenv('REMOTE_ADDR')strcasecmp(getenv('REMOTE_ADDR'),'unknown')){

$onlineip=getenv('REMOTE_ADDR');  elseif(isset($_SERVER['REMOTE_ADDR'])$_SERVER['REMOTE_ADDR']strcasecmp($_SERVER['REMOTE_ADDR'],'unknown')){ $onlineip=$_SERVER['REMOTE_ADDR']; } return $onlineip;

} ?通过SESSION和cookie可以简单的就实现了。


当前文章:php+数据库锁定 数据库 php
文章转载:http://kswsj.cn/article/ddodsoe.html

其他资讯