文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python调用PHP的函数

2023-01-31 06:33

关注

应用需求:

        在电子商务的web平台中有可能存在这样的需求,在月末进行分红账务结算,这样就需要在web服务器下写脚本定时执行数据库的操作,这里有很多种可选的方案,Python调

用PHP函数只是其中的一种处理方式。

Python端代码:

#!/usr/bin/python

import subprocess

method="prom_timing_exec"

proc=subprocess.Popen(['php -f /var/www/html/vsdev/model/Keke_witkey_prom_timing_exec.php '+method],shell=True,stdout=subprocess.PIPE);

response=proc.stdout.read();

print(response);

这里需要注意一点:参数是添加在url后面的,且需要用空格隔开。即使是调用某个函数,其函数名也是需要通过参数传递。

PHP端代码:

<?php
   
   $method = $argv[1];

   class db_op
   {
        public $_conn;
        public $_select;
        public $_dbname;
        public $_tablename;
        public $_sql;
        public $_where;


        function db_op($dbname)
        {
             $this->_dbname = $dbname;
             $this->_tablename = "keke_witkey_prom_event";
        }

        function db_connect()
        {
             $this->_conn = @mysql_connect("192.168.1.50","root","dell_456");
        }

        function db_select()
        {
             $this->_select = @mysql_select_db($this->_dbname , $this->_conn);
        }

        function setWhere($where)
        {
             $this->_where = $where;
        }

        function execute($sql)
        {
            $result = mysql_query($sql);
            if($result){
                  while($row = mysql_fetch_array($result))
                  {
                       $return[] = $row;
                  }
                  return $return;
            }

            return false ;
        }


        function query()
        {
             if(!$this->_conn){
                  $this->db_connect();
             }

             if(!$this->_select){
                  $this->db_select();
             }

             if(isset($this->_where)){
                   $sql = "select * from %s.".$this->_tablename." where ".$this->_where;
             }else{
                   $sql = "select * from %s.".$this->_tablename;
             }

             return $this->execute(sprintf($sql , $this->_dbname));

        }
   }

   function prom_timing_exec()
   {
       $db_op = new db_op("keke_witkey");
       $exec_result = $db_op->query();
       print_r($exec_result);
   }

   if(isset($method) && $method != ""){
        return $method();
   }else{
        echo "No function to call.";
   }
?>

注意:这里在PHP中接收传过来的参数是用:$argv变量来接收的,$argv[0]是php文件名,$argv[1]是第一个参数,$argv[2]是第二个参数....

好久没有写文章了,坚持每天的学习。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯