发布时间:2019-09-15 09:56:12编辑:auto阅读(1465)
应用需求:
在电子商务的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
/*
* @ author: Houqd
* @ date : 2013-09-06
* @ des : This file contains all function that need timing execute in Python script.
**/
$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]是第二个参数....
好久没有写文章了,坚持每天的学习。
上一篇: 如何创建Python工程目录
下一篇: Python tkinter学习3 En
47846
46397
37285
34736
29317
25974
24918
19952
19548
18031
5794°
6419°
5930°
5963°
7067°
5913°
5947°
6440°
6405°
7782°