我试图用VBA编写Access数据库,以便通过我编写的一组PHP Web服务与客户网站上的MySQL数据库进行通信。我已经设法使Access数据库从MySQL数据库中检索数据,但无法使其发布任何内容。我已将问题缩小到我的HTTP请求没有发送我为其分配的参数这一事实。
这是我已经看过的一些问题和站点。这些没有帮助,因为大多数人不使用PHP,而是直接查看网站,或者处理GET而不是POST。
Http Post不发布数据
excel vba http请求从yahoo财务
VBA HTTP GET请求下载数据-冒号的cookie
通过VBA HTTP Post请求中的参数
执行来自vba的隐藏http请求
如何使用Excel从服务器向服务器发送HTTP POST请求VBA?
http://www.tushar-mehta.com/publish_train/xl_vba_cases/vba_web_pages_services/
https://stackoverflow.com/questions/29190759/vba-oauth2-authentication-http-get-request
VBA ServerXMLHTTP的HTTPS使用自签名的证书请求
如何我可以使用VBA从Excel向服务器发送HTTP POST请求吗?
使用Word从VBA 发送HTTP请求通过Word从VBA发送HTTP请求
我的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的人,所以只是猜测语法)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句