html部分:
<html>
<head>
<meta charset="UTF-8">
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
</head>
<body>
<input id="cardno" type="text" size="25" >
<input id="phoneno" type="text" size="15" >
<br>
<input type="button" value="确定" onclick="checkCard()">
</body>
<script type="text/javascript">
function checkCard(){
card = document.getElementById('cardno').value;
phone = document.getElementById('phoneno').value; // jquery形式: phone=$("#phoneno").val();
$.ajax({
async:false, // 默认是true异步;false为同步,同步的话先执行完ajax才执行后面的
type: 'POST',
url: 'shi.php', // 这里是调用的php页面的路径
data: {card:card,phone:phone},
//dataType: 'json', // 注意:这里是指希望服务端返回json格式的数据
success: function(data) { // 这里的data就是json格式的数据
alert(data);
},
error: function() {
alert("false")
}
});
}
</script>
</html>
shi.php页面:
<?php
include("conn.php"); // 加入自己的连接文件
//$phone=trim($_POST['phone']) ;
//$card=trim($_POST['card']) ;
//echo "shoudao:".$phone,$card;
$sql=mysqli_query($conn," select phone,num from tijian where id='$card' ");
// $conn这个变量名在你自己的连接文件里哈,phone,num,id 是你数据库里的列名,tijian是表名
if(!$sql->num_rows)
exit("无此ID号码!"); // 库里没找到匹配信息的话返回("无此ID号码!"
else
{
$row= mysqli_fetch_array($sql);
if(trim($row[0])==$phone) // 从库里出来的串长个心眼,最好trim一下
{
echo "php调用mysql库匹配成功";
// 如果只返回成功信息的话,就到以上好了,下面是继续调用python的部分
$params = trim($row[1]); #传递给python的参数
// echo "php从库里抽出的、传给python的值:".$params;
$path="D:\Anaconda3\python hell.py "; //需要注意的是:末尾要加一个空格,
// 而且粘回去代码的最好自己重新敲下这个空格,因网页上总有编码问题,笔者可是因为看不见的非法字符给坑过!所以这里要敲黑板!!!
passthru($path.$params); //等同于命令`python python.py 参数`,调用python
}
else { echo "匹配不成功!"; }
}
?>
hell.py文件
#!D:\Anaconda3\python.exe
##-*- coding:utf-8 -*-
import codecs, sys
import json
import pymysql
sys.stdout = codecs.getwriter('utf8')(sys.stdout.buffer) #与php的连接
params = sys.argv[1] #即为获取到的PHP传入python的入口参数 sys.argv[0] 是hell.py文件名,
print("php传过来的值是:",params)
##########################################################################
# 如需数据库连接的话,继续以下
# 打开数据库连接
db = pymysql.connect("数据库地址", "数据库名", "用户名", "密码", charset='utf8' )
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL 查询语句
#sql = "SELECT * FROM user1 WHERE n > %s" % (1)
sql = "SELECT * FROM tijian WHERE num = %s" % (params)
#以上查询语句 依据自己情况写
# 使用 fetchone() 方法获取一条数据
cursor.execute(sql)
data = cursor.fetchone()
print("python调用mysql后返回给php的值:",data)
db.close()
网友评论