php和mysql学习问题笔记
1、Undefined index: pwd in E:\xampp\htdocs\phpbase2elite\12\source\register.php on line 6
这是一个警告,表示数组下标为'pwd'未定义就在使用了
修改代码:isset($_POST['username'])?$_POST['username']:"";2、
2、防止sql注入
// 检查客户端提交的数据中是否含有非法字符
function checkIllegalWord ()
{
// 定义不允许提交的SQL命令及关键字
$words = array();
$words[] = " add ";
$words[] = " count ";
$words[] = " create ";
$words[] = " delete ";
$words[] = " drop ";
$words[] = " from ";
$words[] = " grant ";
$words[] = " insert ";
$words[] = " select ";
$words[] = " truncate ";
$words[] = " update ";
$words[] = " use ";
$words[] = "-- "; // 判断提交的数据中是否存在以上关键字, $_REQUEST中含有所有提交数据
foreach($_REQUEST as $strGot) {
$strGot = strtolower($strGot); // 转为小写
foreach($words as $word) {
if (strstr($strGot, $word)) {
echo "您输入的内容含有非法字符!";
exit; // 退出运行
}
}
}// foreach
} checkIllegalWord(); // 检查非法字符
3、如何在phpmyadmin中新insert一条新数据,以及解决中文显示乱码的问题;
先选中你要插入的表格,再在sql中输入下面这条语句:
insert into t_user(f_username, f_password, f_name, f_email) values ('admin1', md5('123456'), '管理员', 'bob@google.com');
但这时你会发现中文显示“??”,乱码,解决办法:
进入字段--->选择乱码的变量,点击修改--->将其更改成”utf8_general_ci
“,再向表中插入中文数据,不显示乱码了。
还有一种办法就是:
在创建表的时候应该先添加字段的编码,在字段类型后面添加”CHARACTER SET utf8 COLLATE utf8_general_ci
“,比如SQL语句
create table webgrades(
班级 varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci,
学号 varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci,
姓名 varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci,
成绩 int (3));
那么CHARACTER SET utf8 COLLATE utf8_general_ci
是干什么用的呢?
如果表的结构指定了CHARACTER SET X和COLLATE Y,那么采用字符集X和校对规则Y。 如果指定了CHARACTER SET X而没有指定COLLATE Y,那么采用CHARACTER SET X和CHARACTER SET X的默认校对规则。 否则,采用默认的字符集和服务器校对规则。
第三种办法:点击操作,改掉数据库的默认编码变为utf8_general_ci,这样我们就不用一个个去改了
4、drop、delete和truncate
drop是删除表,使用drop之后表结构和表的数据都会被删除,truncate 和 delete是删除表里的数据,但不删除表本身,truncate 和 delete相比,truncate要快很多,但缺点就是不能回滚,包括索引等都会变成初始值,数据就无法恢复了。
5、Xampp中mysql传来的中文数据乱码
使用XAMPP的过程中,对于存入表中的中文,在phpmyadmin中查看发现全是乱码,其实单纯的在mysql中也是这样,因为默认使用的是latin1的编码格式。
改一下mysql下的bin文件下的my.ini文件就可以实现使用utf8_general_ci编码格式,这样就能显示中文了。
在my.ini中添加下面一些东西:
[client]
default_character_set = utf8 [mysqld]
character-set-server = utf8 collation-server = utf8_general_ci [mysql]
default_character_set = utf8
重启mySQL,再次存入数据,发现没有中文乱码问题了。
6、Notice: Undefined offset: 3 in E:\xampp\htdocs\phpbase2elite\15\bbs\TreeNode.php on line 50
就是数组越界,没有定义;解决办法:先用isset判断
if(isset($arr[100])){
$arr[100]="111" ;
}
7、php返回json数据
方法1:
$tt=json_encode(array("name"=>"111"));
echo $tt;
/*********************/
//在js文件中
result = myReq.responseText;
//解析json数据变为对象
result=JSON.parse(result);
方法2:
echo '{"name":"1111"}';
/*********************/
//在js文件中,用JSON.parse解析
result = myReq.responseText;
//解析json数据变为对象
result=JSON.parse(result);
php和mysql学习问题笔记的更多相关文章
- Mysql学习笔记(三)对表数据的增删改查。
正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...
- Mysql学习笔记(一)
技术的王国太过迷人,我刚从事IT就被各种技术所引诱迷惑,什么都想学.我还算言而有信的那一类人,还好有一丁点毅力,于是各种东西都沾染了一点.但是这种遍地开花的情况实在和我的智商不匹配.我没有那么多的精力 ...
- MySQL学习笔记一
MySQL 学习笔记 一 一.数据库简单介绍 1. 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系 ...
- Mysql学习笔记(二)数据类型 补充
原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与 ...
- Mysql学习笔记(一)数据类型
原文:Mysql学习笔记(一)数据类型 学习内容: Mysql基本数据类型. 1.数字类型.. i.整型 Mysql数据类型 含义(有符号) tinyint(m ...
- 初识mysql学习笔记
使用VMVirtualBox导入Ubuntu后,可以通过sudo apt-get install mysql-server命令下载mysql. 在学习过程中,我遇到了连接不上Xshell的问题.最终在 ...
- MySQL学习笔记-锁相关话题
在事务相关话题中,已经提到事务隔离性依靠锁机制实现的.在本篇中围绕着InnoDB与MyISAM锁机制的不同展开,进而描述锁的实现方式,多种锁的概念,以及死锁产生的原因. Mysql常用存储引擎的锁 ...
- MySQL学习笔记-事务相关话题
事务机制 事务(Transaction)是数据库区别于文件系统的重要特性之一.事务会把数据库从一种一致状态转换为另一个种一致状态.在数据库提交工作时,可以确保其要么所有修改都已经保存了,要么所有修改都 ...
- MySQL学习笔记-数据库文件
数据库文件 MySQL主要文件类型有如下几种 参数文件:my.cnf--MySQL实例启动的时候在哪里可以找到数据库文件,并且指定某些初始化参数,这些参数定义了某种内存结构的大小等设置,还介绍了参数类 ...
随机推荐
- robotium测试创建java文件和junit文件区别
两者本身差别不大,只是构造方式不同,我一般都用java文件来创建. 1.当有源码测试时,创建junit测试文件 ActivityInstrumentationTestCase2<T>T可以 ...
- linux 查看、关闭 ssh pts/n登录的用户
1.查看登录用户: [root@TiaoBan- bin]# w :: up days, :, users, load average: 1.90, 1.75, 1.84 USER TTY FROM ...
- 用户访问网页流程、DNS 解析流程
一.用户访问流程 二.DNS解析流程 DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于 TCP/IP 网络,它所提供的 ...
- Python自动化开发 - select模块
介绍: IO-多路复用:监听多个socker对象是否有变化,包括可读.可写.发送错误 Python中的select模块专注于I/O多路复用,提供了select poll epoll三个方法(其中后两个 ...
- 配置文件springmvc.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- pcre库
pcre : perl compatible regular expressions , perl 兼容正则表达式 www.pcre.org 按装pcre是为了使Nginx支持具备URI重写功能的 ...
- python 跨平台获取网卡信息和本机ip地址
笔者在项目中遇到过获取本机网卡ip的例子,利用python库psutil解决了此问题. def get_netcard(): """获取网卡名称和ip地址 "& ...
- Mybatis 逆向工程学习随笔
一.逆向工程的作用 简单来说,就是替我们生成Java代码. 之前使用Mybatis的Mapper代理方法开发,还需要自己创建实体类,而且属性还得和数据库中的字段对应.这着实是机械化的而且比较麻烦的事, ...
- Selenium3 + Python3自动化测试系列五——常用断言Assertion
断言Assertion 验证应用程序的状态是否同所期望的一致. 常见的断言包括:验证页面内容,如标题是否为X或当前位置是否正确,或是验证该复选框是否被勾选. selenium 提供了三种模式的断言:a ...
- android stdio Error Could not find com.android.tools common 25.2.2
Error:Could not find com.android.tools:common:25.2.2. Searched in the following locations: file:/D:/ ...