41. PHP MySQL 连接数据库

连接到一个 MySQL 数据库

在您能够访问并处理数据库中的数据之前,您必须创建到达数据库的连接。

在 PHP 中,这个任务通过 mysql_connect() 函数完成。
语法

mysql_connect(servername,username,password);

这里写图片描述

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

// some code

?>

关闭连接

脚本一结束,就会关闭连接。如需提前关闭连接,请使用 mysql_close() 函数。

mysql_close($con);

这里写图片描述
这里写图片描述

1.查询操作

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

// 1.获取连接
$link = mysql_connect('localhost','root','123456');

if(!$link){
    die("连接错误" . mysql_error());
}else{
    echo 'Ok' . '<br/>';
}

//2. 选择数据库
mysql_select_db('test',$link);

//3. 设置操作编码
//保证php程序是按照utf8码操作
mysql_query("set names utf8");

//4. 发送指令
$sql = 'select * from user1';
//$result 表示结果集,可以理解为是一张表,返回的结果集放在内存中
$result = mysql_query($sql,$link);

//5. 接收返回结果,并处理
//mysql_fetch_row 会依次取出结果集$result的下一行数据复制给$row
//$row 是一个数组
while($row = mysql_fetch_row($result))
{
    //echo "<br/> $row[0] --- $row[1] --- $row[2]";

    foreach($row as $k=>$v){
        echo $k . '---' . $v ;
    }
    echo "<br/>";
}

//6. 释放资源,即释放内存
mysql_free_result($result);

//7. 关闭连接,这句话可以没有,但建议有。有的话也要过几分钟关闭
mysql_close($link);

2. 插入,删除,更新

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


$link = mysql_connect('localhost','root','123456');

if(!$link){
    die('cuo le' . mysql_error());
}

mysql_select_db('test',$link) or die(mysql_error());

mysql_query('set names utf8');

$sql = "insert into user11(name,password,email,age) values('xiaoming',md5('123546'),'xiaoming@qq.com',20)";

//删除操作
//$sql = "delete from user1 where id=5";

//更新操作
//$sql = "update user1 set age = 100 where id = 4";


//如果是dml操作,则返回bool
$result = mysql_query($sql,$link);

if(!$result){
    echo "操作失败" . mysql_error();
    die();
}

//看看有几条数据
if(mysql_affected_rows($link)>0){
    echo "操作成功";
}else{
    echo "没有影响到行数";
}

//加上这句话会报错,因为返回的是bool值
//mysql_free_result($result);

mysql_close($link);

封装工具类:

<?php
/**
 * Created by PhpStorm.
 * User: Hua
 * Date: 2015/10/18
 * Time: 15:18
 */

class SqlTool
{
    private $link;
    private $host = 'localhost';
    private $user = 'root';
    private $password = '123456';
    private $db = "test";

    public function __construct()
    {
        $this->link = mysql_connect($this->host,$this->user,$this->password);
        if(!$this->link){
            die("连接失败" . mysql_error());
        }
        mysql_select_db($this->db,$this->link);
        mysql_query("set names utf8");
    }

    //完成select
    public  function execute_dql($sql)
    {
        $result = mysql_query($sql) or die(mysql_error());
        return $result;
    }

    //完成update ,delete, insert
    public  function execute_dml($sql)
    {
        $b = mysql_query($sql,$this->link);
        if(!$b){
            return 0;//失败
        }else{
            if(mysql_affected_rows($this->link)>0){
                return 1;//表示成功
            }else{
                return 2;//表示没有行数影响
            }
        }

        mysql_close($this->link);
    }
}
<?php

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

require_once "SqlTool.class.php";


//*************************dml********************************
/*$sql = "insert into user1(name,password,email,age) values('xiaoming',md5('123'),'xiao@qq.com',200)";

$obj = new SqlTool();

$res = $obj->execute_dml($sql);

if($res == 0){
    echo "失败";
}else if($res == 1){
    echo "成功";
}else if($res == 2){
    echo "没有影响";
}*/

//************************dql********************

$sql = "select * from user1";

$obj = new SqlTool()();
$result = $obj->execute_dql($sql);
while($row = mysql_fetch_row($result)){
    foreach ($row as $k=>$v) {
        echo '---$v';
    }
    echo "<br/>";
}
mysql_free_result($result);

2. 在线词典

mainView.php

<html>
<head>
    <title>在线词典</title>
    <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>

<body>
<h1>查询英文</h1>
<form action="wordProcess.php" method="post">
    请输入英文:<input type="text" name="enword"/>
    <input type="hidden" value="search" name="type"/>
    <input type="submit" value="查询"/>
</form>
</body>
</html>
wordProcess.php

<?php

 // 接收英文单词

require_once 'SqlTool.php';

header("Content-type:text/html;charset=utf-8");

if(isset($_POST['enword'])){
    $en_word = $_POST['enword'];
}else{
    echo "输入为空";
    echo "<a href='mainView.php'>返回重新查询</a>>";
}

//看看数据库中有没有这条记录

$sql = "select chword from words where enword='" . $en_word . "' limit 0,1";

//设计表
//查询,可以使用工具类

$sqlTool = new SqlTool();
$res = $sqlTool->execute_dql($sql);

if($row = mysql_fetch_array($res)){
    echo $en_word . '对应的中文是' . $row['chword'];
}else{
    echo '没有这个词条';
    echo "<br/><a href='mainView.php'>重新返回查询</a>";
}

mysql_free_result($res);


工具类:
SqlTool.php

<?php

class SqlTool
{
    private $link;
    private $host = 'localhost';
    private $user = 'root';
    private $password = '123456';
    private $db = "test";

    public function __construct()
    {
        $this->link = mysql_connect($this->host,$this->user,$this->password);
        if(!$this->link){
            die("连接失败" . mysql_error());
        }
        mysql_select_db($this->db,$this->link);
        mysql_query("set names utf8");
    }

    //完成select
    public  function execute_dql($sql)
    {

        $result = mysql_query($sql) or die(mysql_error());

        return $result;

    }

    //完成update ,delete, insert
    public  function execute_dml($sql)
    {
        $b = mysql_query($sql,$this->link);
        if(!$b){
            return 0;//失败
        }else{
            if(mysql_affected_rows($this->link)>0){
                return 1;//表示成功
            }else{
                return 2;//表示没有行数影响
            }
        }

        mysql_close($this->link);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值