Php VBA(Access 2013)HTTP POST未传递参数

Php VBA(Access 2013)HTTP POST未传递参数,php,mysql,vba,http,post,Php,Mysql,Vba,Http,Post,我正在尝试用VBA编写Access数据库,以便通过我编写的一组PHP web服务与客户端网站上的MySQL数据库通信。我已经设法让Access数据库从MySQL数据库检索数据,但无法让它发布任何内容。我已经将问题缩小到HTTP请求没有发送我分配给它的参数这一事实 以下是我已经看过的一些问题和网站。这些都没有什么帮助,因为大多数人不是在处理PHP,而是直接查看网站,或者是处理GET而不是POST 我的VBA代码是: Dim strJSONEncodedJob As Strin

我正在尝试用VBA编写Access数据库,以便通过我编写的一组PHP web服务与客户端网站上的MySQL数据库通信。我已经设法让Access数据库从MySQL数据库检索数据,但无法让它发布任何内容。我已经将问题缩小到HTTP请求没有发送我分配给它的参数这一事实

以下是我已经看过的一些问题和网站。这些都没有什么帮助,因为大多数人不是在处理PHP,而是直接查看网站,或者是处理GET而不是POST











我的VBA代码是:

Dim strJSONEncodedJob As String
        strJSONEncodedJob = "[{""ExpenseID"":""" & astrExpenseIDs(intI) & "}]"
        URL = "I removed the URL when posting"
        objHTTP.Open "POST", URL, False
        objHTTP.setRequestHeader "Content-Type", "application/json"
        objHTTP.send (strJSONEncodedJob)
        strResponse = objHTTP.responseText
        MsgBox strResponse
我的PHP代码是:

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$json = file_get_contents('php://input');
$data = json_decode($json, true);

$stmt = $conn->prepare("DELETE FROM tblExpenses WHERE ExpenseID=?");
$txtExpenseID = $data['ExpenseID']; 
$stmt->bind_param("i", $txtExpenseID);
$stmt->execute();

echo '{"result" : "success"}';


$stmt->close();
$conn->close();
正如预期的那样,我在VBA中以msgbox的形式获得了成功语句,但是该记录没有从MySQL数据库中删除

有人有解决办法吗

提前谢谢

更新
当我回显$json时,我得到了json编码的字符串,这意味着正在传递参数。但是,当我回显$data['ExpenseID']时,我会得到一个空白的msgbox。

您的json编码对象是一个包含单个对象的数组,因此如果您想获取该对象的属性,您必须首先从数组中对其进行索引。差不多

$txtExpenseID = $data[0]['ExpenseID']; 

(再说一遍,我不是一个PHP爱好者,所以只是猜测语法)

如果你回显
$json
$txtExpenseID
你看到你期望的了吗?我不是PHP爱好者,但在将
$txtExpenseID
绑定为参数之前,您是否会填充它的值?是的,很抱歉,这是一个输入错误,我将对此进行修改。当我回显$json时,我得到了json字符串,我以前没有这样做过,因此这表明参数正在被传递。但是我仍然无法让它执行该命令(删除MySQL中的记录)。当我回显$data['ExpenseID']时,我什么也得不到。你的json编码对象是一个包含单个对象的数组,因此如果你想获取该对象的属性,你必须首先从数组中对其进行索引。类似于
$txtExpenseID=$data[0]['ExpenseID'](再说一遍,我不是PHP爱好者,所以只是猜测语法)谢谢!那是我做的。这个问题一直困扰着我,你解决了它。非常感谢你。我如何将您的评论设置为答案?