首先你要搞清楚,什么是全局变量?什么是局部变量?
成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计制作、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的江永网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
局部变量:
局部变量只是仅仅在函数和类中有效的变量(除非是全局化后的变量,类没有全局化)
全局变量:
在整个文档中(这一个PHP文件中)的普通变量,就是全局变量。但是全局变量和局部变量是分开的。也就是全局变量无法影响到函数和类中(除非global,全局化。类没有全局概念。)
全局变量和局部变量的共同是程序执行完成后自动销毁。
所以不存在。
----------
还有第三种变量,叫做“超全局变量”
意思在多个文档(php文件)中互相传递的
比如:$_POST $_GET $_COOKIES $_SESSION
都是超全局变量
他们在特定情况下刷新不会消失(比如COOKIES ,生成以后,只要不超过有效时间或者你清理了COOKIE以外,变量不会消失。)
Button onclick="submit(this.getAttribute('id'))" id="1"提交/Button
table
tr
tdButton class="btn" id="1"提交/Button/td
/tr
tr
tdButton class="btn" id="2"提交/Button/td
/tr
tr
tdButton class="btn" id="3"提交/Button/td
/tr
tr
tdButton class="btn" id="4"提交/Button/td
/tr
/table
script
$(function(){
$(".btn").click(function(){
var id = $(this).attr("id");
var self = this;
$.ajax({
type:'post',
dataType:'json'
url:'submit.php',
data:{id:id},
success:function(){
$(self).parent().parent().remove();//删除该按钮
}
})
})
})
/script
举例如下:
创建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);
运行结果:
1 .如果想让某些数据页面刷新之后不消失,那就可以结合本地存储做到数据持久化
2 .比如之前的搜索记录,还有一些需要依赖的数据。比如本次活动的代号存下来,让我在一段时间内,根据这个编号来确定相关代号代表的一批数据可以缓存在本地,一遍在下一次请求的时候快速返回
3 .实现原理:在mutations定义的方法里对vuex的状态操作的同时对存储也做相应的操作
4 .插件vue-savedata,vuex-persistedstate
5 .实际实现:监听浏览器的刷新,刷新之前把vuex存在本地,在路由拦截处获取本地储存,放进vuex并删除本地存储,可以自由控制存localstorage和sessionStorage,完全避免插件来消耗性能。
6 .不同页面之间的数据传值,vuex适合组件间传值。
7 .有的问题研究一分钟和一个小时,是会发现不同的问题。
1 .vuex存储在内存。localstorage则以文件的方式存储在本地
2 .应用场景:vuex用于组件之间的传值,localstorage则用于不同页面之间的传值
3 .永久性:当刷新页面时vuex存储的值会丢失。localStorage不会删除
4 .localstorage:只能进行简单的数据读写,对不同组件之间读取数据并做数据转化时,需要对每个读写操作都写一遍代码,重点是存放
5 .vuex是状态管理,重点是管理数据,一个是数据容器,一个是数据管理器。
下列选项(默认保存store中的每个数据到本地 )
可以为您的特定需求配置插件: (参数都是可选的:有默认值)
1.store/index.js
这是由于数据库连接数过多导致的,说明之前建立的连接你没有释放。
看到你的需求是实时获取数据库里面的内容,可以考虑使用内存数据库,这样返回的效率高,也会避免过多连接的错误。
可以使用redis和memcache来解决这个问题。代码如下,记得首先要安装redis,并且要安装php-redis扩展。
?php
$redis = new Redis();
$redis-connect('127.0.0.1', 6379);//serverip port
$redis-auth('mypassword');//my redis password
$redis -set( "test" , "Hello World");
echo $redis -get( "test");
检查一下
1、用户提交表单后,刷新页面会二次提交表单,使数据库记录被修改
2、刷新页面本身就有数据库操作,使数据库记录被修改