本文将详细介绍如何使用php连接MySQL并对数据库进行读取、写入数据等,具有一定的参考价值。

php连接数据库

<?php 
    header("content-Type: text/html; charset=utf-8");//字符编码设置 
    $servername = "localhost"; 
    $username = "数据库用户名"; 
    $password = "数据库密码"; 
    $dbname = "数据库名"; 
    
    // 创建连接 
    $conn = new mysqli($servername, $username, $password, $dbname); 
    // 检测连接 
    if ($conn -> connect_error) { 
      die("Connection failed: " . $conn -> connect_error); 
    } else {
        echo "连接成功";
    }
    $conn -> close();
?>
PHP

注:

  1. 代码中第 4 行需要替换为自己的数据库用户名,一般为root或为项目专门设置的用户名
  2. 代码中第 5 行需要替换为自己的数据库用户名对应的密码,一般为root密码或为项目专门设置的用户名的密码
  3. 代码中第 6 行需要替换为自己要访问的数据库名

配置好php环境,如各项信息填写正确,访问网页将显示 连接成功 的提示:

否则将显示错误信息:

此为用户名或密码错误
此为数据库名填写错误(且没有恰好填成别的数据库导致找不到数据库)

php从数据库表中获取数据

我们在数据库中新建一个表,存放一些演示数据:

$sql = "SELECT * FROM `temp1`"; 
$result = $conn->query($sql);
PHP

通过上述两行代码,我们便可以将名为temp1的表中所有数据获取到,并储存在$result中;但此时不能直接输出$result

我们可以将数据转换成Array格式并使用print_r输出:

$sql = "SELECT * FROM `temp1`";
$result = $conn -> query($sql);
$arr = array();
// 输出每行数据
while($row = $result -> fetch_assoc()) {
    $count = count($row);//不能在循环语句中,由于每次删除row数组长度都减小
    for($i = 0; $i < $count; $i ++){
        unset($row[$i]);//删除冗余数据
    }
    array_push($arr, $row);
}
print_r($arr);
PHP

但平时使用过程中我们可能需要JSON格式的数据,可以使用json_encode将输出数据格式变为JSON格式:

$sql = "SELECT * FROM `temp1`"; 
$result = $conn -> query($sql); 
$arr = array(); 
// 输出每行数据 
while($row = $result -> fetch_assoc()) { 
    $count = count($row);//不能在循环语句中,由于每次删除row数组长度都减小 
    for($i = 0; $i < $count; $i ++){ 
        unset($row[$i]);//删除冗余数据 
    } 
    array_push($arr, $row); 
}
echo json_encode($arr, JSON_UNESCAPED_UNICODE);//json编码 
PHP
此时数据格式就变为了JSON格式

完整代码:

<?php 
    header("content-Type: text/html; charset=utf-8");//字符编码设置 
    $servername = "localhost"; 
    $username = "temp"; 
    $password = "123456"; 
    $dbname = "tempsql"; 
    
    // 创建连接 
    $conn =new mysqli($servername, $username, $password, $dbname); 
    // 检测连接 
    if ($conn -> connect_error) { 
      die("Connection failed: " . $conn -> connect_error); 
    } else {
        $sql = "SELECT * FROM `temp1`"; 
        $result = $conn -> query($sql); 
        $arr = array(); 
        // 输出每行数据 
        while($row = $result -> fetch_assoc()) { 
            $count = count($row);//不能在循环语句中,由于每次删除row数组长度都减小 
            for($i = 0; $i < $count; $i ++){ 
                unset($row[$i]);//删除冗余数据 
            } 
            array_push($arr, $row); 
        }
        echo json_encode($arr, JSON_UNESCAPED_UNICODE);//json编码 
        $conn->close();
    }
?>
PHP

php向数据库表中写入数据

我们可以使用URL中携带参数的方式将数据写入到数据库(注意!请不要在生产环境中使用此种方式!)

使用$_GET接收URL中携带的参数,需要事先定义好变量名 = $_GET["参数名"]

$key1 = $_GET["key1"];
$key2 = $_GET["key2"];
$key3 = $_GET["key3"];
$key4 = $_GET["key4"];
PHP

编写写入部分:

$sql = mysqli_query($conn, "INSERT INTO `temp1` (`key1`, `key2`, `key3`, `key4`) VALUES ('$key1', '$key2', '$key3', '$key4')");
PHP

携带参数执行上述代码即可成功写入数据库,但目前没有提示我们无法确认数据是否成功写入(不够人性化)、没有添加判断条件无法保证写入参数是否缺失,于是将代码进行修饰:

if ($key1 == '' || $key2 == '' || $key3 == '' || $key4 == '') {
    echo '<h1>参数错误!</h1>';
} else {
    $sql = mysqli_query($conn, "INSERT INTO `temp1` (`key1`, `key2`, `key3`, `key4`) VALUES ('$key1', '$key2', '$key3', '$key4')");
    if ($sql) {
        echo '<h1>操作成功!请手动关闭窗口:)</h1>';
    } else {
        echo '<h1>请不要重复添加!</h1>';
    }
}
PHP

注:当数据库没有设置主键或唯一约束时,代码5-9行的判断将一直为true,无法进行重复存入提示与限制重复存入!

我们将key1设为主键,并查看效果:

写入成功

此时我们可在数据库中看到新写入的数据:

因重复写入而写入失败(对应数据表需设置主键/唯一约束)
因参数不完整导致写入失败

完整代码:

<?php 
    header("content-Type: text/html; charset=utf-8");//字符编码设置 
    $servername = "localhost"; 
    $username = "temp"; 
    $password = "123456"; 
    $dbname = "tempsql"; 
    $key1 = $_GET["key1"];
    $key2 = $_GET["key2"];
    $key3 = $_GET["key3"];
    $key4 = $_GET["key4"];
    
    // 创建连接 
    $conn = new mysqli($servername, $username, $password, $dbname); 
    // 检测连接 
    if ($conn -> connect_error) { 
        die("Connection failed: " . $conn -> connect_error); 
    } else {
        if ($key1 == '' || $key2 == '' || $key3 == '' || $key4 == '') {
            echo '<h1>参数错误!</h1>';
        } else {
            $sql = mysqli_query($conn, "INSERT INTO `temp1` (`key1`, `key2`, `key3`, `key4`) VALUES ('$key1', '$key2', '$key3', '$key4')");
            if ($sql) {
                echo '<h1>操作成功!请手动关闭窗口:)</h1>';
            } else {
                echo '<h1>请不要重复添加!</h1>';
            }
        }
        $conn -> close();
    }
?>
PHP

至此教程完成。

写在后面:截止到文章发布时我没有专门学习过php,故本文仅对php操作MySQL功能进行实现,文中如有错误欢迎指正,非常感谢୧(๑•̀⌄•́๑)૭

说点什么
你是我一生只会遇见一次的惊喜...
  • OωO
  • |´・ω・)ノ
  • ヾ(≧∇≦*)ゝ
  • (☆ω☆)
  • (╯‵□′)╯︵┴─┴
  •  ̄﹃ ̄
  • (/ω\)
  • ∠( ᐛ 」∠)_
  • (๑•̀ㅁ•́ฅ)
  • →_→
  • ୧(๑•̀⌄•́๑)૭
  • ٩(ˊᗜˋ*)و
  • (ノ°ο°)ノ
  • (´இ皿இ`)
  • ⌇●﹏●⌇
  • (ฅ´ω`ฅ)
  • (╯°A°)╯︵○○○
  • φ( ̄∇ ̄o)
  • ヾ(´・ ・`。)ノ"
  • ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
  • (ó﹏ò。)
  • Σ(っ °Д °;)っ
  • ( ,,´・ω・)ノ"(´っω・`。)
  • ╮(╯▽╰)╭
  • o(*////▽////*)q
  • >﹏<
  • ( ๑´•ω•) "(ㆆᴗㆆ)
  • (。•ˇ‸ˇ•。)
  • 😂
  • 😀
  • 😅
  • 😊
  • 🙂
  • 🙃
  • 😌
  • 😍
  • 😘
  • 😜
  • 😝
  • 😏
  • 😒
  • 🙄
  • 😳
  • 😡
  • 😔
  • 😫
  • 😱
  • 😭
  • 💩
  • 👻
  • 🙌
  • 🖕
  • 👍
  • 👫
  • 👬
  • 👭
  • 🌚
  • 🌝
  • 🙈
  • 💊
  • 😶
  • 🙏
  • 🍦
  • 🍉
  • 😣
  • 颜文字
  • Emoji
支持Markdown语法
好耶,沙发还空着ヾ(≧▽≦*)o
Loading...