Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- //php数据库编程--有三种方式来操作MySQL数据库
- # 1 mysql扩展库
- # 2 MySQLi扩展库
- # 3 PDO
- //使用php的MySQL扩展库完成对mysql的操作
- # php.ini文件中取配置mysql扩展库
- # extension=php_mysql.dll
- // echo phpinfo(); #查询php配置
- // 2 编写mysql
- //步骤如下:
- # 1 获取连接
- # 2 选择数据库
- # 3 设置操作编码(可以有)
- # 4 发送数据库SQL语句(ddl数据定义语言,dml数据操作语言,dql数据查询语言select,dtl数据事务语句rollback,commit)
- # 5 接受返回的结果,并处理
- # 6 释放资源,关闭连接
- # 1
- $conn = mysql_connect('127.0.0.1','root','');
- /*if(!$conn){
- die('fail'.mysql_error());//返回上一个文本错误信息
- }else{
- echo "good";
- }*/
- # 2
- mysql_select_db('user1');
- # 3
- mysql_query('set name utf8');//保证php程序是按照utf-8码操作的
- # 4
- $sql = "select * from user1";
- $res = mysql_query($sql,$conn);//表示结果集,资源数据类型
- #var_dump($res); //resourse()
- # 5
- while($row = mysql_fetch_row($res)){//mysql_fetch_row()会一次取出$res结果集的下一行数据,赋值给$row
- #第一种取法
- //echo '<br>$row[0]--$row[1]--$row[2]';
- //echo "<br>";
- //var_dump($row);
- #第二种取法
- foreach ($row as $key => $value) {
- echo "$key -- $value";
- }
- echo '<br>';
- }
- # 6
- mysql_free_result($res); //释放结果集资源,必须有
- mysql_close($conn); //关闭资源,可有可无
- //细节
- # 1 使用完mysql结果集后,一定要释放资源
- # 2 mysql_close();如果没有的话,系统也会自动关闭
- # 3 从$res获取行的时候,处理mysql_fetch_row($res),还有三个方法
- #mysql_fetch_row($res)返回索引数组
- #mysql_fetch_assoc($res), 返回一个关联数组
- #mysql_fetch_array($res),返回索引数组和关联数组,建议不要使用
- #mysql_fetch_object($res),把一行数据当做一个对象返回,建议不要使用
- # 4 mysql_query($sql,$conn)执行结果;
- #如果执行的是dml语句,则返回bool
- #如果执行的是dql语句,返回查询结果mysql result
- // 对数据库进行dml(crud)操作
- $conn = mysql_connect('localhost','root','');
- mysql_select_db('user1',$conn);
- mysql_query('set names utf8');
- $sql = 'insert into user1("name","password","email","age")values("mia",md5("123456"),"",2)';
- $res = mysql_query($sql,$conn);
- if (!$res) {
- die("fail".mysql_error());
- }
- if (mysql_affected_rows($conn)>0) { //显示影响行数
- echo "good";
- }else{
- echo "no affect rows";
- }
- mysql_free_result($res);
- mysql_close($conn);
- ?>
- <?php
- //从上面的文件可以看出,代码复用性和可维护性不高,通常是将对数据库的操作封装成一个工具类 SqlTool
- class SqlTool {
- private $conn;
- private $host = 'localhost';
- private $user = 'root';
- private $password = '';
- private $db = 'user1';
- public function __construct(){
- $this->conn = mysql_connect($this->host,$this->user,$this->password);
- if (!$this->conn) {
- die('fail'.mysql_error());
- }
- mysql_select_db($this->db,$this->conn);
- mysql_query('set names utf8');
- }
- public function execute_dql($sql){
- $res = mysql_query($sql) or die(mysql_error());
- return $res;
- }
- public function execute_dml($sql){
- $res = mysql_query($sql,$this->conn);
- if (!$res) {
- return 0; //失败
- }else{
- if (mysql_affected_rows($this->conn)>0) {
- return 1;//表示成功
- }else{
- return 2;//表示没有影响行数
- }
- }
- }
- }
- ?>
- <?php
- //mysql其他有用函数
- //编写一个函数,可以接受一个表名,然后把表头和记录显示在网页上
- function show_table_info($table_name){
- $conn = mysql_connect('localhost','host','')
- mysql_select_db('user1');
- mysql_query('set names utf8');
- $sql = "select * from user1";
- $res = mysql_query($sql,$conn);
- while($field_info == mysql_fetch_field($res)){
- echo "<br>".$field_info->name;
- }
- //显示总共有的行数和列数
- $rows = mysql_affected_rows($conn);
- $columns = mysql_num_fields($res);
- echo $rows."-----".$columns;
- echo "<table><tr>";
- //表头
- for ($i=0; $i <$columns ; $i++) {
- $field_name = mysql_field_name($res, $i);
- echo "<th>".$field_name."</th>";
- }
- echo "</tr>";
- while ($row = mysql_fetch_row($res)) {
- echo "<tr>";
- for ($i=0; $i < $columns; $i++) {
- echo "<td>".$row[$i]."</td>";
- }
- echo "</tr>"
- }
- echo "</table>";
- }
- show_table_info('user1');
- ?>
Add Comment
Please, Sign In to add comment