You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从本地Python代码传递变量到远端PHP脚本并写入MySQL数据库

本地Python通过PHP接口操作远程MySQL的实现方案

步骤1:修改服务端PHP脚本(支持接收外部传参)

你当前的PHP脚本是硬编码的SQL逻辑,无法接收外部传递的变量,首先调整为支持参数传递,同时加入预处理逻辑避免SQL注入风险:

<?php
$host_name = 'host';
$database = 'db';
$user_name = 'user';
$password = 'pass';

$conn = new mysqli($host_name, $user_name, $password, $database);

// 检查连接
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// 接收POST传递的参数 可按需替换为$_GET使用GET方式传参
$new_test_val = isset($_POST['new_test_val']) ? (int)$_POST['new_test_val'] : 1;
$condition_val = isset($_POST['condition_val']) ? (int)$_POST['condition_val'] : 0;

// 预处理SQL 避免注入风险
$sql = "UPDATE test SET test = ? WHERE test = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ii", $new_test_val, $condition_val);

if ($stmt->execute() === TRUE) {
  echo "Record updated successfully, affected rows: " . $stmt->affected_rows;
} else {
  echo "Error: " . $sql . "<br>" . $conn->error;
}

$stmt->close();
$conn->close();
?>

将修改后的PHP文件上传到服务器原路径即可。

步骤2:编写本地Python请求代码

首先安装HTTP请求依赖:
pip install requests

Python代码示例:

import requests

# 替换为你的PHP文件公网可访问的完整地址
php_api_url = "http://你的服务器IP或域名/对应路径/你的php文件名.php"

# 要传递的变量 可根据业务逻辑动态修改
request_data = {
    "new_test_val": 3,  # 要设置的test字段新值
    "condition_val": 2  # WHERE条件的匹配值
}

try:
    # 发送POST请求触发PHP执行数据库操作
    resp = requests.post(php_api_url, data=request_data, timeout=10)
    # 输出PHP接口返回的执行结果
    print("执行结果:", resp.text)
except Exception as e:
    print("请求异常:", str(e))

注意事项

  • 安全建议:当前接口无访问校验,建议在PHP中增加密钥校验逻辑,比如请求时必须携带约定好的token参数,校验通过才执行数据库操作,避免被恶意调用篡改数据。
  • 如需使用GET方式传参,将PHP中$_POST替换为$_GET,Python端将请求代码替换为resp = requests.get(php_api_url, params=request_data, timeout=10)即可。
  • 可根据业务需要自行扩展传递的参数数量、修改SQL逻辑实现增删改查各类操作。

内容的提问来源于stack exchange,提问作者INoble

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 21:48:01