PHP连接MySQL服务器

连接MySQL的方法:mysql_connect();

  • 语法:resource $link = mysql_connect($hostname, $username, $password);
  • $hostname参数:是MySQL服务器的域名或地址,可以在后面加上端口号。如:localhost:3306
  • $username参数:是MySQL服务器的用户名,如:root
  • $password参数:是MySQL服务器用户民的密码。
  • 返回值:如果执行成功,返回一个资源标识符,如果执行失败,返回false。
<?php

$link = @mysql_connect("localhost:3308","root","");
if (!$link) {
    echo "链接数据库失败。".mysql_error()."<br />";
    exit("数据库打开失败,以关闭程序。");
}

?>

选择数据库方法:mysql_select_db();

语法:bool mysql_select_db(string $database_name[,resource $link]);

  • $database参数:数据库名字。
  • $link参数:可选,如果不填就会默认用上一次链接数据库返回的resource类型的变量$link
if (!mysql_select_db($db_name, $link)) {
    echo "打开数据库出错。".mysql_error();
}

发送sql语句:mysql_query();

语法:bool mysql_query(string $query[,resource $link]);

  • $qurey参数:要发送的sql语句,可以是增删该查。
  • $link参数:可选参数,默认是上一次打开的link。
  • 返回值:SELECT, SHOW, DESCRIBE命令时返回一个结果集(也是一个资源标识符,是MySQL数据的引用地址),如果执行其他语句则返回bool值。

设置MySQL返回和发送的数据字符集:

mysql_query("set names utf8");

添加数据

$sql_insert = "INSERT INTO 007_news(cat,title,author,content)VALUES(2,'测试数据标题','some author','测试信息的内容');";
$result = mysql_query($sql_insert,$link);
if ($result) {
    echo "添加成功";
}

查找数据

  • 语法:$resource = mysql_query("SELECT * FROM table_name WHERE id<100 ORDER BY id DESC");
  • $resource变量:当mysql_query执行的是查询语句 会返回一个结果集而不是bool。我们要的数据都在$resource中。
  • 取出一条数据:$arr = mysql_fetch_array($resource[, int $result_type]);
  • $resource参数:结果集。
  • $result_type:返回的结果类型,此参数需要传系统常量:MYSQL_BOTH, MYSQL_ASSOC, MYSQL_NUM。
    • MYSQL_BOTH: 默认值,返回混合数组。
    • MYSQL_ASSOC: 返回一个关联数组:与mysql_fetch_assoc();同效。
    • MYSQL_NUM: 返回一个枚举数组:与mysql_fetch_row();同效。
  • 返回值:返回一个数组(只包含一条数据),数组类型取决于第二个参数。
  • 我们可以使用while循环来取出所有数据,当取出第一条数据后再次调用这个函数 它会自动取出下一条数据,无需程序员做别的操作。

首先,我们写一个公共的链接数据库的文件。

<?php
// 声明PHP输出数据的字符集
header("content-type:text/html;charset=utf-8");

// 配置信息
$db_host = "localhost:3306";
$db_username = "root";
$db_password = "";

$db_name = "Alex";

// 链接数据库
$link = @mysql_connect($db_host, $db_username, $db_password);
if (!$link){
    exit("连接数据库失败");
}

// 选择数据库
if (!mysql_select_db($db_name, $link)){
    exit("选择数据库失败");
}

// 设置数据库返回的字符集
mysql_query("set names utf8", $link);

?>

引用公共文件,开始进行取数据的学习:

<?php
include "MySQL_Connect.php";

$sql = "SELECT id,title,author FROM 007_news WHERE id < 100 ORDER BY id DESC";
$result = mysql_query($sql);

if (!$result){
    exit("没有取出数据");
}
?>

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <title>数据展示</title>
</head>
<body>
<table width="100%" border="1px" cellpadding="5px">
    <tr>
        <th>序号</th>
        <th>标题</th>
        <th>作者</th>
    </tr>

    <?php while ($arr = mysql_fetch_assoc($result)){
     ?>
    <tr>
        <th><?php echo $arr["id"] ?></th>
        <th><?php echo $arr["title"] ?></th>
        <th><?php echo $arr["author"] ?></th>
    </tr>
    <?php } ?>
</table>
</body>
</html>

删除数据

  • 语法:mysql_query("DELETE FROM table_name WHERE id = 99");

给展示数据表页面添加操作:

<?php
include "MySQL_Connect.php";

$sql = "SELECT id,title,author FROM 007_news WHERE id < 100 ORDER BY id DESC";
$result = mysql_query($sql);

if (!$result){
    exit("没有取出数据");
}
?>

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <title>数据展示</title>
    <script type="text/javascript">
        function delData (id) {
            if (window.confirm("确定要删除这条数据吗?")){
                // 把id传过去。
                location.href = "delete_data.php?id="+id;
            }
        }
    </script>
</head>
<body>
<table width="100%" border="1px" cellpadding="5px">
    <tr>
        <th>序号</th>
        <th>标题</th>
        <th>作者</th>
        <th>操作</th>
    </tr>

    <?php
    // 声明变量
    $i = 0;
    $str = "";
    while ($arr = mysql_fetch_assoc($result)) {
        $i % 2 == 0 ? $str.= "<tr aligh = 'center' bgcolor='#f6f6f6'>\n" : $str .= "<tr aligh = 'center'>\n";
        $str .= "<td>".$arr['id']."</td>\n";
        $str .= "<td>".$arr['title']."</td>\n";
        $str .= "<td>".$arr['author']."</td>\n";
        $str .= "<td><a href='javascript:void(0)'onClick='delData(".$arr['id'].")'>删除</a></td>\n";
        $str .= "</tr>\n";
        $i++;
    }
    echo $str;
    ?>
</table>
</body>
</html>

当点击删除后,确定删除会跳转到delete_data.php

<?php
include "MySQL_Connect.php";
// 导入地址栏中的id参数
$id = (int)$_GET["id"];

// 删除语句
$sql = "DELETE FROM 007_news WHERE id = {$id}";
mysql_query($sql);
// 调回到列表页
header("location:learn_sql.php");
?>

我的PHP之旅--数据库连接MySQL服务器,添加 删除 查询的更多相关文章

  1. mysql 修改 添加 删除 表字段

    添加表的字段    alter table 表名  add  字段名  字段的类型 例子:        alter table table1 add transactor varchar(10) n ...

  2. 【mysql】添加删除权限

    https://www.cnblogs.com/wuxunyan/p/9095016.html

  3. MySQL服务器是怎么处理客户端请求的

    不论MySQL客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送一段文本(MySQL语句),服务器进程处理后再向客户端进程发送一段文本(处理结果).那服务器进 ...

  4. 怎么快速了解自己的MySQL服务器

      1.查看数据库服务器状态:status Linux 下的MySQL服务器状态 该列表中主要包括MySQL的版本(为version 5.1.61).运行平台(debian-linux-gnu(i68 ...

  5. 怎么快速了解自己的MySQL服务器?

    From: http://www.cnblogs.com/benshan/archive/2013/01/09/2853097.html 1.查看数据库服务器状态:status Linux 下的MyS ...

  6. 闰秒导致MySQL服务器的CPU sys过高

    今天,有个哥们碰到一个问题,他有一个从库,只要是启动MySQL,CPU使用率就非常高,其中sys占比也比较高,具体可见下图. 注意:他的生产环境是物理机,单个CPU,4个Core. 于是,他抓取了CP ...

  7. 如何配置远程mysql服务器

    如何配置远程mysql服务器 分配用户权限 可以先看一下目前的用户权限状况: use mysql; select host,user,password from user; 然后分配新的权限给某一用户 ...

  8. MYSQL服务器my.cnf配置文档详解

    MYSQL服务器my.cnf配置文档详解 硬件:内存16G [client] port = 3306 socket = /data/3306/mysql.sock [mysql] no-auto-re ...

  9. mysql服务器和配置优化

    一.存储引擎 mysql中有多种存储引擎,一般常见的有三种:   MyIsam InnoDB Memory 用途 快读 完整的事务支持 内存数据 锁 全表锁定 多种隔离级别的行锁 全表锁定 持久性 基 ...

随机推荐

  1. js 添加enter事件

    $(function () { document.onkeydown = function (e) { var ev = document.all ? window.event : e; ) { if ...

  2. java基础学习总结二(标识符、字符集、数据类型以及类型转换)

    一:标识符 1:标识符可以由字母.数字.下划线_.$符等组成2:标识符的首字母只能是字母.数字.下划线3:标识符不能使用关键字或者保留字4:标识符可以是中文,但是不建议使用中文5:标识符可以任意长,没 ...

  3. Mac下Sublime Text Vim模式 方向键无法长按

    在Mac终端输入(不是sublime text里的console),分别对应ST2.ST3: defaults ApplePressAndHoldEnabled -bool false default ...

  4. xilinx 网站资源导读

    [经验整理.01]Xilinx网站资源导读 ISE11版 标签:  ISE  Xilinx  入门  资源  2009-09-01 20:41 序 虽然自己也曾想过,但如果不是向农要求,把曾经写过的文 ...

  5. files_dir

    一.opendir() —— 打开目录 opendir( 打开的当前目录 );   二.closedir() —— 关闭目录   三.readdir() —— 返回目录中的各个元素,返回上一个并且指向 ...

  6. arclist底层模板字段,可以调用的字段列表

    arclist底层模板字段,可以调用的字段列表   用DedeCMS做站,arclist是用得最多的标签,因为他是调用文章的基本标签,功能也非常强大,他的底层字段比较多,我们平时使用还没有用到一半,但 ...

  7. ASP实现用年月日时分秒和两位随机数字来作为上传文件名的函数

    Public Function GetNewFileName() dim ranNum dim dtNow dtNow=Now() randomize ranNum=int(90*rnd)+10 Ge ...

  8. SQL 拼接多个字段的值&一个字段多条记录的拼接 [轉]

    例如student表: studentID studentName studentScore 01 Alice 90 02 Bill 95 03 Cindy 100 一.拼接多个字段的值 select ...

  9. sql 复习

    创建表 #设置外键 create table example3(id int primary key, stu_id int, course_id int, constraint c_fk forei ...

  10. 20160510--hibernate懒加载问题

    懒加载 通过asm和cglib二个包实现:Domain是非final的. 1.session.load懒加载. 2.one-to-one(元素)懒加载: 必需同时满足下面三个条件时才能实现懒加载 (主 ...