1、MySql把主键定义为自动增长标识符类型
在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值。例如:
createtable customers(id int auto_increment primarykeynotnull, name varchar(15));insertinto customers(name) values("name1"),("name2");select id from customers;
以上sql语句先创建了customers表,然后插入两条记录,在插入时仅仅设定了name字段的值。最后查询表中id字段,查询结果为:
由此可见,一旦把id设为auto_increment类型,mysql数据库会自动按递增的方式为主键赋值。
注:如当有主键为1~3的3行数据,删除其中一行数据,再次添加一行数据未手动设置主键则主键值仍然递增,为4;
2、Thinkphp的URL大小写问题:
Thinkphp可以在config.php设置大小写不敏感(如下),但是在线上服务器为linux服务器时,linux服务器对URL大小写敏感,导致当thinkphp设置为大小写不敏感时读取的URL地址会出现错误。因此必须将thinkphp设置为大小写敏感。
3、阿里云nginx下设置thinkphp 网站URL rewrite重写和pathinfo模式
打开/alidata/server/nginx/conf/vhosts目录下对应站点的配置文件:比如说test.conf
加入如下代码块:
location / {
index index.html index.htm index.php;
if(!-e $request_filename) {
rewrite ^/index.php(.*)$ /index.php?s=$1 last;
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
红框处为网站文件夹
4、Thinkphp实例化数据库模型出现数据表名大小写问题:
当用M()或D()方式实例化数据库时,无论输入的数据表名是否大小写准确,数据表名带有大写字母都无法识别。
因此,将数据库所有数据表名设为全小写。
5、thinkp下AJAX的使用
1)JS端的实现:使用jQuery实现:
1、包含jQuery文件(使用百度的JS库),在HTML上加上
如果是在js文件下:在js文件前面加上
2、具体实现如下:
2)PHP端实现:
1、判断是否有值传过来:post方法
2、通过ajaxReturn函数返回数据,注意是json类型;
6、thinkphp下数据库子查询
当后面->selct()传入条件为->select(false),或换为buildsql();只产生aql语句不查询
然后再执行一下语句(注意红线处加.a),即可以在前面查询的条件下子查询,此例为获得上面查询条件下的最大ID值。
7、iframe父子页面参数的传递
1) 父页面调用子页面的JS方法:myFrame.window.方法名();
父页面调用子页面DOM标签值:
myFrame.window.document.getElementById("id值").value;
也可直接给DOM的value赋值:
myFrame.window.document.getElementById("id值").value=值
2)子页面调用父页面JS方法:parent.方法名();
子页面电泳父页面DOM标签值:parent.window.document.getElementById("id值").value