KTblog

第16章 PHP操作MySQL

 

学习要点:

1.PHP连接到MySQL

2.增删改查

3.其他常用函数

 

 

如果你已经具有了使用PHPSQLMySQL的丰富经验,现在就可以把所有这些技术组合在一起。PHPMySQL之间稳固的集成只是众多程序员采纳它的一个原因,还有一个原因就是,它如此的简单方便。

 

一.PHP连接到MySQL

 

这里,我们全面采用UTF-8编码。

设置Zend Stduio的编码:Window -> Preferences -> Workspace

 

标头设置,让火狐和IE保持编码统一:

<?php

header(\'Content-Type:text/html; charset=utf-8\');

?>

 

连接MySQL

<?php

$conn = @mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or 

die(\'数据库连接失败!错误信息:\'.mysql_error());

?>

 

数据库连接参数,可以用常量存储,这样就不能修改,更加安全。

<?php

define(\'DB_USER\',\'root\');

define(\'DB_PASSWORD\',\'yangfan\');

define(\'DB_HOST\',\'localhost\');

define(\'DB_NAME\',\'school\');

?>

 

选择你所需要的数据库

<?php

@mysql_select_db(DB_NAME) or die(\'数据库找不到!错误信息:\'.mysql_error());

?>

 

设置字符集,如果是GBK,直接设置SET NAMES GBK即可

<?php

@mysql_query(\'SET NAMES UTF8\') or die(\'字符集设置错误\');

?>

 

获取记录集

<?php

$query = "SELECT * FROM grade";

$result = @mysql_query($query) or die(\'SQL语句有误!错误信息: \'.mysql_error());

?>

 

输出一条记录

<?php

print_r(mysql_fetch_array($result,MYSQL_ASSOC));

?>

 

释放结果集资源

<?php

mysql_free_result($result);

?>

 

关闭数据库

<?php

mysql_close($conn);

?>

 

 

二.增删改查

 

新增数据

<?php

$query = "INSERT INTO grade (name,email,point,regdate) VALUE

 (\'李炎恢\',\'yc60.com@gmail.com\',,NOW())";

@mysql_query($query) or die(\'添加数据出错:\'.mysql_error());

?>

 

修改数据

<?php

$query = "UPDATE grade SET name=\'小可爱\' WHERE id=6";

@mysql_query($query) or die(\'修改出错:\'.mysql_error());

?>

 

删除数据

<?php

$query = "DELETE FROM grade WHERE id=6";

@mysql_query($query) or die(\'删除错误:\'.mysql_error());

?>

 

显示数据

<?php

$query = "SELECT id,name,email,point FROM grade";

$result = @mysql_query($query) or die(\'查询语句出错:\'.mysql_error());

while (!!$row = mysql_fetch_array($result)) {

echo $row[\'id\'].\'----\'.$row[\'name\'].\'----\'.$row[\'email\'].\'----\'.$row[\'point\'];

echo \'<br />\';

}

?>

 

三.其他常用函数

 

mysql_fetch_row():从结果集中取得一行作为枚举数组

mysql_fetch_assoc() 从结果集中取得一行作为关联数组 

mysql_fetch_array() 从结果集中取得一行作为关联数组,或数字数组,或二者兼有 

 

mysql_fetch_lengths() 取得结果集中每个输出的长度 

mysql_field_name()  取得结果中指定字段的字段名 

 

mysql_num_rows() 取得结果集中行的数目

mysql_num_fields()取得结果集中字段的数目

 

mysql_get_client_info() 取得 MySQL 客户端信息

mysql_get_host_info() 取得 MySQL 主机信息

mysql_get_proto_info() 取得 MySQL 协议信息

mysql_get_server_info() 取得 MySQL 服务器信息

 

 

================================================================

================================================================

================================================================

 

整体操作:

<?php

/*     mysql_query() 仅对 SELECT,SHOW,DESCRIBE, EXPLAIN 和其他语句 语句返回一个 resource,如果查询出现错误则返回 FALSE。
    
    对于其它类型的 SQL 语句,比如INSERT, UPDATE, DELETE, DROP 之类, mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。
    
    返回的结果资源应该传递给 mysql_fetch_array() 和其他函数来处理结果表,取出返回的数据。
    
    假定查询成功,可以调用 mysql_num_rows() 来查看对应于 SELECT 语句返回了多少行
    或者调用 mysql_affected_rows() 来查看对应于 DELETE,INSERT,REPLACE 或 UPDATE 语句影响到了多少行。
    
    如果没有权限访问查询语句中引用的表时,mysql_query() 也会返回 FALSE。
*/

    //第一步,设置输出编码
    header(\'Content-Type:text/html; charset=utf-8\');

    //第二步,定义常量,保存链接参数
    //数据库服务器
    define(\'DB_SERVER\',\'localhost:3306\');
    //用户名
    define(\'DB_NAME\',\'root\');
    //密码
    define(\'DB_PWD\',\'123456\');
    //数据库
    define(\'DB_DATABASE\', \'guest\');
    
    
    //第三步,连接数据库服务器
    $conn = @mysql_connect(DB_SERVER,DB_NAME,DB_PWD) or die(\'数据库连接错误:\'.mysql_error($conn));
    
    //第四步,选择使用的数据库
    @mysql_select_db(DB_DATABASE,$conn) or die(\'选择数据库错误:\'.mysql_error($conn));

    //第五步,设置返回数据的字符集
    @mysql_query(\'SET NAMES UTF8\') or die(\'字符集设置错误\');
    
    //第六步,创建并发送一条SQL语句
    //创建SQL语句
    $query = "select * from g_users";
    //发送语句
    $result = @mysql_query($query,$conn) or die(\'SQL错误,错误信息:\'.mysql_errno());
    
    //第七步,取得查询的数据
    //取得所有数据
    $data = mysql_fetch_array($result,MYSQL_ASSOC);
    //取得总记录条数
    //$data = mysql_num_rows($result);
    
    //第八步,打印出数据
    print_r($data);
    
    //第九步,销毁获取的数据资源
    mysql_free_result($result);
    
    //第十步,关闭数据库连接
    mysql_close($conn);
?>

 

配置MySQLHELper代码:

<?php

    //第一步,设置输出编码
    header(\'Content-Type:text/html; charset=utf-8\');
    
    //第二步,定义常量,保存链接参数
    //数据库服务器
    define(\'DB_SERVER\',\'localhost:3306\');
    //用户名
    define(\'DB_NAME\',\'root\');
    //密码
    define(\'DB_PWD\',\'123456\');
    //数据库
    define(\'DB_DATABASE\', \'test\');
    
    
    //第三步,连接数据库服务器
    $conn = @mysql_connect(DB_SERVER,DB_NAME,DB_PWD) or die(\'数据库连接错误:\'.mysql_error($conn));
    
    //第四步,选择使用的数据库
    @mysql_select_db(DB_DATABASE,$conn) or die(\'选择数据库错误:\'.mysql_error($conn));
    
    //第五步,设置返回数据的字符集
    @mysql_query(\'SET NAMES UTF8\') or die(\'字符集设置错误\');

?>

 

操作代码:

<?php

    include_once \'config.php\';
    
    //添加一条数据
    /* $Insert_query = "insert into person (name, sex) values (\'张三\', \'男\')";
    //执行
    @mysql_query($Insert_query) or die(\'插入操作失败,错误原因:\'.mysql_error());
    //返回 insert ,delete, update,等修改的行数
    $num = mysql_affected_rows(); 
    
    //显示信息
    /* if ($num == 1) {
     echo \'添加成功!\';
     }else {
     echo \'添加失败!\';
     } */
     
    
    
    
    //删除一条数据
    /* $delete_query = "delete from person where id = 7";
    //执行
    @mysql_query($delete_query) or die(\'删除数据失败,错误原因:\'.mysql_error());
    $num = mysql_affected_rows();
    
    //显示信息
    /* if ($num == 1) {
     echo \'删除成功!\';
     }else {
     echo \'删除失败!\';
     } */
    
    
    
    
    
    //修改一条数据
    /* $update = "update person set name = \'王五\', sex = \'女\' where id = 8";
    //执行
    @mysql_query($update) or die(\'修改发生错误,错误原因:\'.mysql_error());
    $num = mysql_affected_rows();
    
    //显示信息
    /* if ($num == 1) {
        echo \'修改成功!\';
    }else {
        echo \'修改失败!\';
    } */
    
    
    
    
    
    
    //查询数据
    /* $query = "select id, name, sex from person";
    $result = mysql_query($query); */
    //打印单行
    /* $row = mysql_fetch_array($result,MYSQL_ASSOC);
    echo $row[\'id\'].\'--\'.$row[\'name\'].\'--\'.$row[\'sex\']; */
    
    //打印多行
    //当$row不为空的时候,打印数据。使用"!!"的作用是,使得$row数组转换为布尔值。
    /* while (!!$row = mysql_fetch_array($result)) {
        echo $row[\'id\'].\'--\'.$row[\'name\'].\'--\'.$row[\'sex\']."<br/>";
    } */
    
    
    
    
    
    
    
    
    
    
    //获取记录条数
    /* $num_query = "select id, name, sex from person";
    $result = mysql_query($num_query) or die(\'查询条数出错,错误信息:\'.mysql_error());
    $num = mysql_num_rows($result);
    
    echo \'条数:\'.$num; */
    
    //关闭数据库链接
    mysql_close();

?>

 

分类:

技术点:

相关文章: