实现处理PHP+MySQLi+HTML实战,简单到不能再简单的注册登录页面效果!
PHP基础——注册登录验证入门实战
连接数据库:
1 | <?php |
注册页面与简单逻辑:
1 | <!DOCTYPE html> |
登录页面与简单逻辑:
1 | <!DOCTYPE html> |
首页展示:
1 | <!DOCTYPE html> |
实战代码
以下是注册登录,验证PHP代码逻辑
index.php
1 | <!doctype html> |
login.css
1 | html { |
login.js
1 | $(function() { |
doAction.php
1 | <?php |
config.php
1 | <?php |
mysql.func.php
1 | <?php |
以上使用jquery-1.9.0.min.js实现JS基本功能交互,SwiftMailer实现用户邮箱验证,后期会根据实战抽一篇文章说关于邮箱和短信验证的实战!
笔记总结:
检测MySQLi扩展是否已经开启
- phpinfo();
- 检测MySQLi扩展是否已经加载,如果已经加载返回true,否则返回false
- var_dump(extension_loaded(‘mysqli’));
- Fatal error(致命错误): Call to undefined function mysqli_connect()
in G:\maizi\PHPAdvance\MySQLi\1-mysqli_connect.php on line 6
- Fatal error(致命错误): Call to undefined function mysqli_connect()
- function_exists():检测某个函数是否存在
- var_dump(function_exists(‘mysqli_connect’));
- print_r(get_defined_functions());
mysqli_multi_query
- 执行多条SQL语句,每条SQL语句一定要以分号结尾,否则就会失败
- 如果多条SQL语句中有一条失败了,整个都会失败
结果集
- mysqli_store_result():传输上一次产生的结果集
- mysqli_more_results():判读是否有更多的结果集
- mysqli_next_result():将结果集的指针向下移动一位
错误信息与编号
- mysqli_connect_errno():连接产生的错误编号
- mysqli_connect_error():连接产生的错误信息
- mysqli_errno($link):得到上一步操作产生的错误编号
- mysqli_error($link):得到上一步操作产生的错误信息
mysqli_query
mysqli_query($link,$sql):执行SQL查询
- 1》只能执行一条SQL语句,SQL语句可以没有分号
- 2》mysqli_query()执行SELECT/SHOW/EXPLAIN/DESC/DESCRIBE这样关键字的SQL语句,执行
成功返回的是mysqli_result结果集,执行失败返回false;
执行其他SQL语句,执行成功返回true,失败返回false
mysqli_affected_rows
mysqli_affected_rows($link):得到上一步操作产生的受影响的记录数
- 大于0的:受影响的记录数
- 等于0:没有记录被影响
- 等于-1:代表的SQL语句有问题
result_type
$result_type的值为:
- MYSQLI_BOTH:关联+索引
- MYSQLI_ASSOC:关联
- MYSQLI_NUM:索引
连接不成功的情况:
1》用户名密码不正确
- Warning: mysqli_connect(): (HY000/1045): Access denied for user ‘root‘@’localhost’ (using password: YES) in G:\maizi\PHPAdvance\MySQLi\2-mysqli_connect.php on line 5
bool(false)
2》MySQL服务器没有开启
- ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)
Warning: mysqli_connect(): in G:\maizi\PHPAdvance\MySQLi\2-mysqli_connect.php on line 13
- ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)
bool(false)
防止SQL注入 : ‘ or 1=1
- 转义特殊字符
- 预处理
1 | $username=addslashes($username); |