php防数据修改 PHP修改

PHP CI框架修改数据的方法

CI框架下的PHP增删改查总结:

成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、网站制作、天全网络推广、重庆小程序开发公司、天全网络营销、天全企业策划、天全品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供天全建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com

controllers下的 cquery.php文件

[php] view plain copy

?php

class CQuery extends Controller {

//构造函数

function CQuery() {

parent::Controller();

// $this-load-database();

}

function index() {

//调用model 其中train为外层文件夹 MQuery为model名称 queryList为重命名

$this-load-model('train/MQuery','queryList');

//获得返回的结果集 这里确定调用model中的哪个方法

$result = $this-queryList-queryList();

//将结果集赋给res

$this-smarty-assign('res',$result);

//跳转到显示页面

$this-smarty-view('train/vquery.tpl');

}

//进入新增页面

function addPage() {

$this-smarty-view('train/addPage.tpl');

}

//新增

function add() {

//获得前台数据

//用户名

$memberName = $this-input-post('memberName');

//密码

$password = $this-input-post('password');

//真实姓名

$userRealName = $this-input-post('userRealName');

//性别

$sex = $this-input-post('sex');

//出生日期

$bornDay = $this-input-post('bornDay');

//e_mail

$eMail = $this-input-post('eMail');

//密码问题

$question = $this-input-post('question');

//密码答案

$answer = $this-input-post('answer');

//调用model

$this-load-model('train/MQuery','addRecord');

//向model中的addRecord传值

$result = $this-addRecord-addRecord($memberName,$password,$userRealName,$sex,$bornDay,$eMail,$question,$answer);

//判断返回的结果,如果返回true,则调用本页的index方法,不要写 $result == false 因为返回的值未必是false 也有可能是""

if ($result) {

$this-index();

} else {

echo "add failed.";

}

}

//删除

function deletePage() {

//获得ID

$deleteID = $this-uri-segment(4);

//调用model

$this-load-model('train/MQuery','delRecord');

//将值传入到model的delRecord方法中

$result = $this-delRecord-delRecord($deleteID);

//判断返回值

if ($result) {

$this-index();

} else {

echo "delect failed.";

}

}

//修改先查询

function changePage() {

$changeID = $this-uri-segment(4);

$this-load-model('train/MQuery','changeRecord');

$result = $this-changeRecord-changeRecord($changeID);

//将结果集赋给res

$this-smarty-assign('res',$result);

//跳转到显示页面

$this-smarty-view('train/changePage.tpl');

}

//修改

function change() {

//获得前台数据

//ID

$ID = $this-input-post('id');

//用户名

$memberName = $this-input-post('memberName');

//密码

$password = $this-input-post('password');

//真实姓名

$userRealName = $this-input-post('userRealName');

//性别

$sex = $this-input-post('sex');

//出生日期

$bornDay = $this-input-post('bornDay');

//e_mail

$eMail = $this-input-post('eMail');

//密码问题

$question = $this-input-post('question');

//密码答案

$answer = $this-input-post('answer');

//调用model

$this-load-model('train/MQuery','change');

//向model中的change传值

$result = $this-change-change($ID,$memberName,$password,$userRealName,$sex,$bornDay,$eMail,$question,$answer);

//判断返回的结果,如果返回true,则调用本页的index方法,不要写 $result == false 因为返回的值未必是false 也有可能是""

if ($result) {

$this-index();

} else {

echo "change failed.";

}

}

}

models中的 mquery.php 文件

[php] view plain copy

?php

class MQuery extends Model {

//构造函数

function MQuery() {

parent::Model();

//连接数据库

$this-load-database();

}

//查询列表

function queryList() {

//防止select出的数据存在乱码问题

//mysql_query("SET NAMES GBK");

//SQL语句

$sql = "SELECT ID,member_name,sex,e_mail FROM user_info_t";

//执行SQL

$rs = $this-db-query($sql);

//将查询结果放入到结果集中

$result = $rs-result();

//关闭数据库

$this-db-close();

//将结果集返回

return $result;

}

//新增

function addRecord($memberName,$password,$userRealName,$sex,$bornDay,$eMail,$question,$answer) {

//防止select出的数据存在乱码问题

//mysql_query("SET NAMES GBK");

//SQL语句

$sql = "INSERT INTO user_info_t (member_name,password,user_real_name,sex,born_day,e_mail,question,answer) " .

"VALUES ('$memberName','$password','$userRealName','$sex','$bornDay','$eMail','$question','$answer')";

//执行SQL

$result = $this-db-query($sql);

//关闭数据库

$this-db-close();

//返回值

return $result;

}

//删除

function delRecord($deleteID) {

//防止select出的数据存在乱码问题

//mysql_query("SET NAMES GBK");

$sql = "DELETE FROM user_info_t WHERE ID = $deleteID";

$result = $this-db-query($sql);

$this-db-close();

return $result;

}

//修改前查询

function changeRecord($changeID) {

//防止select出的数据存在乱码问题

//mysql_query("SET NAMES GBK");

$sql = "SELECT ID,member_name,password,user_real_name,sex,born_day,e_mail,question,answer FROM user_info_t WHERE ID = $changeID";

//执行SQL

$rs = $this-db-query($sql);

$result = $rs-row();//$result = $rs[0]

//关闭数据库

$this-db-close();

//将结果集返回

return $result;

}

//修改

function change($ID,$memberName,$password,$userRealName,$sex,$bornDay,$eMail,$question,$answer) {

//防止select出的数据存在乱码问题

//mysql_query("SET NAMES GBK");

//SQL语句

$sql = "update user_info_t set member_name = '$memberName',password = '$password', user_real_name = '$userRealName'," .

"sex = '$sex',born_day = '$bornDay',e_mail = '$eMail',question = '$question',answer = '$answer'" .

"where ID = $ID";

//执行SQL

$result = $this-db-query($sql);

//关闭数据库

$this-db-close();

//返回值

return $result;

}

}

views 下的 addPage.tpl文件

[php] view plain copy

html

head

/head

bodyform action="{{site_url url='train/cquery/add'}}" method="post"

table border='1'

tr

td用户名/td

tdinput type="text" class="text" name="memberName" id="memberName"//td

/tr

tr

td密码/td

tdinput type="text" class="text" name="password" id="password"//td

/tr

tr

td真实姓名/td

tdinput type="text" class="text" name="userRealName" id="userRealName"//td

/tr

tr

td性别/td

tdinput type="text" class="text" name="sex" id="sex"//td

/tr

tr

td出生日期/td

tdinput type="text" class="text" name="bornDay" id="bornDay"//td

/tr

tr

tde_mail/td

tdinput type="text" class="text" name="eMail" id="eMail"//td

/tr

tr

td密码问题/td

tdinput type="text" class="text" name="question" id="question"//td

/tr

tr

td密码答案/td

tdinput type="text" class="text" name="answer" id="answer"//td

/tr

/table

table

tr

tdinput type="submit" class="button" name="OK" value="提交" /

/td

/tr

/table/form

/body

/html

php里如果二个人同时操一个数据库里表的字段,怎么避免

首先,你要知道,访问网站肯定存在先后,两个人同时访问网站,哪怕只有1ms的时间差也会被识别出先后的顺序。知道这个之后,对于避免数据库被多人修改就很简单了,有多种实现方法,一种是借鉴信号量的应用方法,在程序里来控制,谁抢到谁就拥有信号量,就可以操作数据库;另一种是使用数据库ACID特性以及lock功能(各种现代数据库都支持事务处理模式并拥有lock功能,具体查你用的数据库的文档教程),先访问的要在程序里对数据库加lock,防止其他人修改。

如何用php修改数据库中的数据

举例如下:

创建userinfo_update.php页面用于查询用户信息,先显示信息,在修改:

先通过GET获取用户编号查询用户信息:

$sql = "select * from user_info where user_id='".$_GET['userId']."'";

$result = mysql_query($sql,$con);

if($row = mysql_fetch_array($result)){

}

页面效果:

创建update.php文件,用于修改用户信息:

使用到了mysql_affected_rows() 函数返回前一次 MySQL 操作所影响的记录行数。

//通过post获取页面提交数据信息

$userId = $_POST[userId];

$userName = $_POST[userName];

$userAge = $_POST[userAge];

$sql = "update user_info set user_name='".$userName."',user_age=".$userAge." where user_id='".$userId."'";

mysql_query($sql,$conn);//执行SQL

$mark  = mysql_affected_rows();//返回影响行数

$url = "userinf_select.php";

运行结果

创建delete.php文件,完成删除用户信息功能:

$userId = $_GET['userId'];

include 'connection.php';

$sql = "delete from user_info where user_id='".$userId."'";

mysql_query($sql,$con);

$mark  = mysql_affected_rows();//返回影响行数

if($mark0){

echo "删除成功";

}else{

echo  "删除失败";

}

mysql_close($con);

运行结果:

PHP数据修改

这个说起来长篇,你所问的$updateSQL = $db-GetUpdateSQL其实并不是属于php自己的东西,而是用户自定义的类,至于类是什么去看看基础的php语言基础.

所以你要知道GetUpdateSQL返回的究竟是什么东西,他是怎么工作的,就要找到类的本身代码所在文件,去看看他里面究竟是什么东西.

而php修改数据库里的东西其实是没有专用语句的.如果硬要问怎么实现的话,就是那个$db-Execute($updateSQL);

所以建议你把$updateSQL print(或echo)出屏幕看看里面是什么就明白了.

其实是个SQL的操作语句,指示SQL如何存储数据,而$db-Execute只让php把这个命令传给SQL


网页名称:php防数据修改 PHP修改
文章转载:http://scyanting.com/article/hippoi.html