浪迹༣ 2024-01-14 00:51 采纳率: 88.2%
浏览 9
已结题

php向数据库提取对应的参数和提交数据至数据库

这是一个接口转发的程序,需要实现两个功能:
1、接收原始数据中的uid后,然后到数据库表user里面提取uid对应的userid、account和pwd构建新接口参数后再转发。如数据库中无对应uid值时以默认userid=11,account=22,pwd=33的数值进行转发接口。
2、创建一个向数据库表user提交数据的php文件,数据库表参数包括uid、userid、pwd

<?php
// 接收原始请求参数
$uid = $_REQUEST['uid']; // 企业ID
$mobile = $_REQUEST['mobile']; // 号码
$content = $_REQUEST['content']; // 内容
// 构造新接口的请求参数
$post_data = array(
    'userid' => $uid,
    'account' => $uid,
    'pwd' => $pwd,
    'mobile' => $mobile,
    'content' => $content,
    'action' => 'send',
    'rt' => 'json'
);
// 构造请求字符串
$post_items = [];
foreach ($post_data as $key => $value) {
    $post_items[] = $key . '=' . urlencode($value);
}
$post_string = implode('&', $post_items);
// 初始化cURL
$url = 'http://www.alisms.cn/smsGBK.aspx';
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 发送请求并获取结果
$result = curl_exec($ch);
curl_close($ch);
// 输出结果
echo $result;
?>

  • 写回答

13条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-01-14 00:51
    关注

    引自免费微信小程序:皆我百晓生

    你好!根据你的问题描述,我将为你提供解决方案。

    1. 提取uid对应的userid、account和pwd构建新接口参数后再转发:

    你可以使用SQL语句在数据库中查询uid对应的userid、account和pwd。如果查询结果为空,你可以使用默认的数值进行转发。下面是一个可能的解决方法:

    <?php
    // 根据uid查询数据库
    $servername = "localhost";
    $username = "your_username";
    $password = "your_password";
    $dbname = "your_dbname";
    
    $conn = new mysqli($servername, $username, $password, $dbname);
    
    if ($conn->connect_error) {
        die("连接数据库失败: " . $conn->connect_error);
    }
    
    $sql = "SELECT userid, account, pwd FROM user WHERE uid = '$uid'";
    $result = $conn->query($sql);
    
    if ($result->num_rows > 0) {
        // uid存在于数据库中
        while ($row = $result->fetch_assoc()) {
            $userid = $row["userid"];
            $account = $row["account"];
            $pwd = $row["pwd"];
        }
    } else {
        // uid不存在于数据库中,使用默认数值
        $userid = 11;
        $account = 22;
        $pwd = 33;
    }
    
    $conn->close();
    
    // 构造新接口的请求参数
    $post_data = array(
        'userid' => $userid,
        'account' => $account,
        'pwd' => $pwd,
        'mobile' => $mobile,
        'content' => $content,
        'action' => 'send',
        'rt' => 'json'
    );
    
    // 其他代码...
    ?>
    

    请将your_usernameyour_passwordyour_dbname替换为你的数据库信息。

    2. 向数据库表user提交数据的php文件:

    为了将数据提交到数据库表user,你需要使用SQL语句执行INSERT操作。下面是一个可能的解决方法:

    <?php
    // 接收要提交的参数
    $uid = $_REQUEST['uid']; // 企业ID
    $userid = $_REQUEST['userid'];
    $pwd = $_REQUEST['pwd'];
    
    $servername = "localhost";
    $username = "your_username";
    $password = "your_password";
    $dbname = "your_dbname";
    
    $conn = new mysqli($servername, $username, $password, $dbname);
    
    if ($conn->connect_error) {
        die("连接数据库失败: " . $conn->connect_error);
    }
    
    // 将参数插入到数据库表user
    $sql = "INSERT INTO user (uid, userid, pwd)
            VALUES ('$uid', '$userid', '$pwd')";
    
    if ($conn->query($sql) === TRUE) {
        echo "数据插入成功";
    } else {
        echo "数据插入失败: " . $conn->error;
    }
    
    $conn->close();
    
    // 其他代码...
    ?>
    

    请将your_usernameyour_passwordyour_dbname替换为你的数据库信息。

    希望以上解决方案对你有所帮助!如果你有任何疑问,请随时提出。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(12条)

报告相同问题?

问题事件

  • 系统已结题 1月25日
  • 已采纳回答 1月17日
  • 创建了问题 1月14日

悬赏问题

  • ¥20 数学建模,尽量用matlab回答,论文格式
  • ¥15 昨天挂载了一下u盘,然后拔了
  • ¥30 win from 窗口最大最小化,控件放大缩小,闪烁问题
  • ¥20 易康econgnition精度验证
  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能