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‘), ‘管理员‘, ‘[email protected]‘);

但这时你会发现中文显示“??”,乱码,解决办法:

进入字段--->选择乱码的变量,点击修改--->将其更改成”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

谷歌结果:

The $numbers variable is not initialized, it needs to be declared before you can use it. For example $numbers = ‘‘; somewhere above the $decip = ...

就是说变量没有初始化,在用的时候应该先初始化的。

				


				
时间: 08-21

php和mysql学习笔记的相关文章

MySQL学习笔记-基础入门

MySQL学习笔记

MySql学习笔记(一)之DQL常用查询

MySql学习笔记(一)之DQL常用查询 前言:mysql是中小型的数据库软件,SQL语言分为DDL,DCL,DML,DQL四种,在这里重点讲解DQL的单表查询. 正文:在学习mysql单表查询之前,我们先做一些准备工作. 需要安装的软件如下: 1.mysql,版本可以选择5.1或者5.5,安装过程可以参考博客:http://www.cnblogs.com/ixan/p/7341637.html 2.mysql图形化管理软件:Navicate,sqlyog(二选一,推荐使用sqlyog). 本文

MySQL学习笔记-自定义函数

MySQL学习笔记-自定义函数 1.自定义函数简介 自定义函数:用户自定义函数(user-defined function,UDF)是一种对MySQL扩展的途径,其用法与内置函数相同 自定义函数的两个必要条件:(1)参数  (2)返回值 自定义函数: 创建自定义函数 CREATE FUNCTION function_name RETURNS {STRING|INTEGER|REAL|DECIMAL} routine_body 关于函数体: 1.函数体可以由合法的SQL语句构成: 2.函数体可以是

Mysql学习笔记(三)对表数据的增删改查。

写在前面:(一些牢骚,可以直接跳到分割线后) 太过敏感的人不会快乐,不幸的是我正是这种性格的人. 从培训机构毕业后,迫于经济方面的压力,和当时的班里的一个同学住在了一起,我们在一个公司上班.谁知道这都是不开心生活的源头,从每天早晨开始心情就很糟糕.他是个脾气很慢的人,我是个急脾气,特别是在早上上班的时候.由此种种吧,实在是不胜枚举.算了,还是不说了,太痛苦了,我不太喜欢说别人的坏话.我是学心理学的,已经用各种方法去安慰自己,但是都不太奏效. 回想以往和朋友的交往中,我虽然不算十分合群的人,但绝对

mysql 学习笔记(一)

查询:show databases;show status;show tables; desc  table-name: 更改root密码:方法一:mysqladmin -uroot -poldpassword  password newpassword方法二:mysql -uroot -puse mysqlupdate user set password=password("newpasswd") where user="root";select host,use

MySQL学习笔记-数据类型与操作数据表

MySQL学习笔记-数据类型与操作数据表 数据类型:  1.字符型  2.整型  3.浮点型  4.日期时间型 数据表操作:  1.插入记录  2.查找记录 记录操作:  1.创建数据表  2.约束的使用 1.数据类型 [1]整型: 数据类型 存储范围 字节 TINYINT 有符号型:-128~127(-2^7~2^7 -1),无符号型0~255(0~2^8 -1) 1 SMALLINT 有符号型:-2^15~2^15 -1,无符号型0~2^16 -1 2 MEDIUMINT 有符号型:-2^2

mysql学习笔记 第五天

使用分区数据表: 分区数据表和merge数据表具有相似的作用,但是分区数据表确确实实是一个数据表 ,不像merge是列出数据表的逻辑关系,并且分区数据表可以包括像myisam以外的 的数据表.创建分区数据表: create table 里给出数据列和索引,然后用partition by 定义一个用来把数据行分配 到各个分区的分区函数:[将数据表分成四个区] create table log_partition( dt datetime not null, info varchar(100) no

mysql学习笔记 第四天

mysql引擎: archive(档案)[数据插入以后不能被修改,只读] blackhole[这种写操作是删除数据,读操作是返回空白记录] CSV[在储存数据时以逗号作为数据项之间的分隔符] example[示例(存根)储存引擎] Falcon[用来进行处理事务的储存类型] federated[用来访问远程数据表的储存引擎] InnoDB[具备外键支持功能的事务处理引擎] memory[内存里的数据表] merge[用来管理多个MyISAM数据表构成的数据表集合(merg-myisam)] my

mysql 学习笔记 第二天

插入表格数据: Insert into table_name set columns_1=value1,columns_2=value2,对于没有赋值的列,将会取默认值,并且这个方法只能一次插入一个数据 利用文本方式插入数据: Load data local infile‘径’into table table_name: Select 的通用形式: Select columns from table or tables where conditions;from一般不能少的,但是当查询的时候没有

MySQL学习笔记(一)

命令行中的取消操作 如果你决定不想执行正在输入过程中的一个命令,输入\c取消它: mysql> SELECT -> USER() -> \c mysql> 这里也要注意提示符,在你输入\c以后,它切换回到mysql>,提供反馈以表明mysql准备接受一个新命令. 使用SHOW语句找出服务器上当前存在什么数据库: mysql> SHOW DATABASES; +----------+ | Database | +----------+ | mysql | | test |