PHP与MySQL学习与实践— —新闻系统前后端
来源:互联网 发布:斗米兼职 知乎 编辑:程序博客网 时间:2024/06/07 02:22
(1)、PHP+MYSQL入门学习并实现后端增删改查,bootstrap实现后端页面
(2)、前端有ajax请求json格式数据,jquery动态创建元素等
PHP与MySQL关系图
一、基本命令行
1、连接数据库:mysql_connect(“数据库主机名或ip”,”用户名”, “密码”),连接成功的话返回mysql连接标识符
2、关闭指定连接的数据库连接:mysql_close(标识符);
下面实际操作数据库的效果可以在浏览器phpMyAdmin视图对话中看到
3、选择访问数据库:mysql_select_db(‘数据库名字’);
4、执行sql语句:mysql_query(“xxxx”) ;
如:向test数据库的testsdb表的name字段插入一个值的命令行:mysql_query(‘insert into testdb(name) values(“tom”)’)。当插入失败时仅显示失败结果并没失败的原因输出,需借助:mysql_error();//显示mysql的错误,不需要参数;
a、执行查询语句:
$res = mysql_query('select * from tablename limit 1');\\limit 1表示查询一行,返回一个资源句柄(resource)$row = mysql_fetch_array($res);\\通过句柄获查询结果集中的数据var_dump($row);\\打印
b、插入新数据到MySQL中
$sql = "insert into tablename(name, age) values('李四', 18)";mysql_query($sql); //执行插入语句
二、4f 内置函数(一)
1、mysql_fetch_row() ;//以索引数组形式获取数据
//只能用echo $row[0] . "," . $row[1]...
2、mysql_fetch_array() ;//以混合数组形式获取数据
$sql = "select * from phptable";mysql_query("set names 'utf8'");//设置编码,解决乱码问题$result = mysql_query($sql, $con);//获取资源标识符while($row = mysql_fetch_array($result)) {//以数组形式返回每一行 echo $row['id'] . "," . $row['name'];//或者用echo $row[0] . "," . $row[1]; print_r($row);}
mysql_fetch_row和mysql_fetch_array的区别
a、mysql_fetch_row取一条数据产生一条索引数组
b、mysql_fetch_array默认状态下取一条数据产生一个索引数组和一个关联数组
mysql_fetch_array的第二个参数
1.MYSQL_ASSOC 关联数组
2.MYSQL_NUM 数字数组(索引数组)
3.MYSQL_BOTH 默认
3、mysql_fetch_assoc() ;//以关联数组形式获取数据
mysql_fetch_assoc($resouce)和mysql_fetch_array($resouce,MYSQL_ASSOC)等价,可能mysql_fetch_assoc()占用的资源更少一些。
4、mysql_fetch_object();//以对象形式获取数据。输出结果是一个对象
while($obj = mysql_fetch_object($result)) { echo $obj->name; //echo 输出内容,print_r()打印数组,var_dump打印对象 var_dump($obj);}
三、内置函数(二)
1、mysql_num_rows()为获取结果集的行数:
$query = mysql_query($sql);//用法二:用来判断数据集是否为空。意思:当存在$query,并且存在$query存在行的时候执行。if($query && mysql_num_rows($query)){ while($row=mysql_fetch_row($query)) { print_r($row);//进行数据的输出 }} else { echo "没有数据";}//否则输出“没有数据”。可以避免资源的浪费(明明为空却还输出,资源就浪费了)
2、mysql_result
mysql_result($result, $row, [$field]);$result为查询的返回结果集,即资源标示符;$row为行索引,从0开始;$field为字段(属性索引),可选,比如'id'或者是'name'之类的,也可以是偏移量,就是从左到右的字段排序,也是从0开始。
3、mysql_affected_rows($con); //传入连接标识符,返回最近操作影响的行数。注意一下问题:
a、如果本次mysql语句未对数据库进行修改,则返回为0.
b、该函数只能检测离其最近的一条mysql语句对数据库的修改,其他的修改则无法判别。
四、前后端实践
1、后端:php+mysql实现增删改查,bootstrap实现页面
2、前端:ajax请求json格式数据,jquery动态创建元素等
代码下载地址:http://download.csdn.net/detail/mqy1023/9509256
其他:遇到的问题
1、#1089无法创建table表格的问题
解决方案a:cmd命令行手动将PRIMARY KEY (‘id’(4))的(4)删除,回车手动创建成功。
参考:http://stackoverflow.com/questions/28932281/what-is-wrong-with-my-sql-here-1089-incorrect-prefix-key
解决方案b:在创建表格填写主键时,大小不要填写
2、乱码问题
解决步骤1、创建数据库时排序规则选utf8_general_ci 2、php中执行sql语句前加mysql_query(“set names ‘utf8’”);//设置UTF-8编码
3、解决json_encode输出中文出现UNICODE
把汉字先urlencode然后再使用json_encode,json_encode之后再次使用urldecode来解码,这样编码出来的json数组中的汉字就不会出现unicode编码了。
$array = array('test'=>urlencode("我是测试"));$array = json_encode($array);echo urldecode($array);
参考:
1、慕课网《PHP与MYSQL关系大揭秘》:http://www.imooc.com/learn/116
2、慕课网《JSON应用场景与实战》:http://www.imooc.com/learn/68
- PHP与MySQL学习与实践— —新闻系统前后端
- 前后端分离的思考与实践
- 前后端分离的思考与实践----基于NodeJS的前后端分离
- 前后端分离的思考与实践(转载)
- 前后端分离的思考与实践(1)
- 前后端分离的思考与实践(2)
- 前后端分离的思考与实践(一)
- 前后端分离的思考与实践(链接)
- 前后端分离的思考与实践(一)
- (精)前后端分离的思考与实践(一)
- (精)前后端分离的思考与实践(二)
- 前后端分离的思考与实践(一)
- 前后端分离的思考与实践(二)
- 前后端分离的思考与实践(三)
- 前后端分离的思考与实践(四)
- 前后端分离的思考与实践(五)
- 前后端分离的思考与实践(六)
- 前后端分离的思考与实践(一)
- 安卓开发之java基础笔记【2】
- Android 从枚举到注解最佳实践
- BabylonJS命名约定---基于WebGL的H5 3D游戏引擎
- html_样式表和常用样式属性
- Android基础知识:网络编程
- PHP与MySQL学习与实践— —新闻系统前后端
- 1.线性表创建、元素插入、元素删除、线性表合并(原创)
- 成功在家用ssh远程连上了学校电脑虚拟机当中的ubuntu(代价是虚拟机全部黑屏只能用SSH连接了!)
- API之进程和线程函数
- 一、String类的基础
- Hibernate4工具类的封装
- 第六章思考题
- 十二、图的遍历--(2)深度优先搜索算法
- Android复杂ListView