小程序+PHP连接数据库

主要结构  

PHP

<?php    
// 这段代码展示了如何使用PDO(PHP Data Objects)扩展来连接到MySQL数据库。  
// PDO提供了一个数据访问抽象层,这意呀着,无论使用什么数据库,你都可以通过统一的函数来查询和获取数据。  
  
// 假设你已经有了服务器上的配置信息,这些配置信息(如数据库用户名、密码等)应该通过安全的方式获取,  
// 而不是直接从外部输入(如用户提交的表单)中获取,以避免安全风险,如SQL注入等。  
  
// 数据库连接信息  
$host = Host;            // 数据库服务器地址,可自行修改为:localhost、127.0.0.1、本地IP或服务器IP
$charset = 'utf8mb4';    // 字符集,推荐使用utf8mb4以支持更广泛的Unicode字符,包括emoji等  
$user = Account;         // 数据库用户名  自行修改
$password = Password;    // 数据库密码    自行修改
$db_name = Databases;    // 数据库名称    自行修改
$port = PORT;            // 数据库端口    自行修改
  
// 创建PDO实例的DSN(数据源名称)  
// DSN描述了如何连接到数据库服务器,包括协议、主机名、端口、数据库名和字符集等  
$dsn = "mysql:host=$host;port=$port;dbname=$db_name;charset=$charset";    
  
// PDO选项数组,用于设置PDO对象的行为  
$options = [    
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION, // 错误模式设置为异常,这样当PDO遇到错误时,会抛出PDOException异常  
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,       // 设置默认的获取数据方式为关联数组  
    PDO::ATTR_EMULATE_PREPARES   => false,                  // 关闭预处理语句的模拟,使用真实的预处理语句可以提高安全性  
];    
  
try {    
    // 尝试使用提供的DSN、用户名、密码和选项来创建PDO实例  
    $pdo = new PDO($dsn, $user, $password, $options);  
      
    // 在这里,你可以执行数据库查询。例如:  
    // $stmt = $pdo->query('SELECT * FROM some_table');  
    // while ($row = $stmt->fetch()) {  
    //     echo $row['column_name'];  
    // }  
      
    // 注意:在实际应用中,你应该使用预处理语句来执行查询,特别是当查询中包含用户输入时,以提高安全性。  
      
} catch (\PDOException $e) {    
    // 如果在尝试连接数据库时发生错误,PDO会抛出PDOException异常。  
    // 在这里,你可以处理这个异常,例如记录错误日志、向用户显示错误消息等。  
    // 示例:echo "数据库连接失败:" . $e->getMessage();  
      
    // 发送错误响应给调用者(这取决于你的应用架构,可能是向前端返回错误信息,或者记录到日志等)  
}

小程序前端

wx.request({
    url: 'php路径',
    success: (res)=> {
      console.log(res.data);
      //处理数据
    }
})

实例

PHP

<?php
//数据库连接信息
$host = "localhost";
$charset = 'utf8mb4'; 
$user = 'root';  
$password = '123456';  
$db_name = 'user';
$port = 3300;//注意不要被占用即可

// 创建PDO实例  
$dsn = "mysql:host=$host;port=$port;dbname=$db_name;charset=$charset";

// PDO选项数组
$options = [  
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,  
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,  
    PDO::ATTR_EMULATE_PREPARES   => false,  
];

try {  
    $pdo = new PDO($dsn, $user, $password, $options);
    // 在这里执行您的数据库查询  
    $sql = "SELECT * FROM user;";
    $stmt = $pdo->query($sql);  
  
    // 检查结果集  
    $results = [];  
    while ($row = $stmt->fetch()) {  
        $results[] = $row; // 将每一行作为数组添加到结果集中  
    }  
  
    // 将结果编码为JSON并发送回调用者  
    header('Content-Type: application/json');  
    echo json_encode($results);  
  
    // 释放语句资源(尽管在某些PDO配置中这是自动的)  
    $stmt->closeCursor();  
  
    // 关闭PDO连接(如果您在脚本的末尾不再需要数据库连接)  
    // $pdo = null; // 或者使用$pdo->close();,但设置为null通常更简洁  
  
} catch (\PDOException $e) {  
    // 发送错误响应给调用者  
    http_response_code(500); // 设置HTTP状态码为500内部服务器错误  
    echo json_encode(['error' => $e->getMessage()]); // 将错误信息编码为JSON并发送  
}

小程序前端

wx.request({
    url: '/php/user/list.php',
    success: (res)=> {
      console.log(res.data);
      //处理数据
    }
})

拓展 

PHP

<?php
//数据库连接信息
$host = "localhost";
$charset = 'utf8mb4';
$user = 'root';
$password = '123456';
$db_name = 'user';
$port = 3316;

// 创建PDO实例  
$dsn = "mysql:host=$host;port=$port;dbname=$db_name;charset=$charset";  
$options = [  
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,  
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,  
    PDO::ATTR_EMULATE_PREPARES   => false,  
];

// 接收前端数据
$name= $_GET['name'];
$phone= $_GET['phone'];
$age= $_GET['age'];

try {  
    $pdo = new PDO($dsn, $user, $password, $options);

    // 构造预处理语句  
    $stmt = $pdo->prepare('INSERT INTO user ( name, phone, age ) VALUES (?,?,?)');  
    
    // 绑定参数并执行  
    $stmt->execute([ $name, $phone, $age ]);
  
    // 释放语句资源(尽管在某些PDO配置中这是自动的)  
    $stmt->closeCursor();  
  
    // 关闭PDO连接(如果您在脚本的末尾不再需要数据库连接)  
    $pdo = null; // 或者使用$pdo->close();,但设置为null通常更简洁  
  
} catch (\PDOException $e) {  
    // 发送错误响应给调用者  
    http_response_code(500); // 设置HTTP状态码为500内部服务器错误  
    echo json_encode(['error' => $e->getMessage()]); // 将错误信息编码为JSON并发送  
}

删 


// 其他不变,其他不变,其他不变

// 接收前端数据
$id = $_GET['id'];

// 构造预处理语句  
$stmt = $pdo->prepare('DELETE FROM user WHERE id = ?');

// 绑定参数并执行
$stmt->execute([ $id ]);


// 其他不变,其他不变,其他不变

// 接收前端数据
$id = $_GET['id'];
$name = $_GET['name'];
$phone = $_GET['phone'];
$age= $_GET['age'];

// 构造预处理语句  
$stmt = $pdo->prepare('UPDATE user SET name = ?, phone = ?, age = ? WHERE id = ?');

// 绑定参数并执行  
$stmt->execute([ $name, $phone, $age, $id ]);

 小程序js

add() {
    var data = {
      name: "张三",
      phone: "21345678901",
      age: "20"
    }
    wx.request({
      url: '/php/user/add.php',
      data: data,
      success:(res)=> {
        if (res.statusCode == 200) {
          console.log("添加成功");
        }
      }
    })
},

delete() {
    wx.request({
      url: '/php/user/delete.php?id=1',
      success:(res)=> {
        if (res.statusCode == 200) {
          console.log("删除成功");
        }
      }
    })
},

change() {
    var data = {
      id:1,
      name: "李四",
      phone: "12345678900",
      age: "21"
    }
    wx.request({
      url: '/php/user/change.php',
      data: data,
      success:(res)=> {
        if (res.statusCode == 200) {
          console.log("修改成功");
        }
      }
    })
},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值