基本上我想使用 php 作为中间件与 MYSQL 服务器进行通信。
由于需要安装驱动程序,我无法直接连接到数据库,而且我们的 IT 不允许在我们公司的计算机上安装驱动程序。
我了解如何使用 vba ->php->mysql 插入数据,但我不知道如何从 mysql 获取数据到 excel。 vba->php->mysql->php->vba。
我想做一个查询并将结果发送到 vba excel。
这是有效的 VBA 代码,但它也会发回多个空格。我不确定这是否是正确的方法。
Private Sub ExtractPHP()
Dim item As String
Dim objHTTP As Object
Dim URL As String
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
URL = "http://localhost/php/requestdata.php"
objHTTP.Open "POST", URL, False
objHTTP.setRequestHeader "Content-type", "application/x-www-form-urlencode"
objHTTP.send ("")
Worksheets("hiddendata").Range("k4").Value = Replace(objHTTP.responseText, " ", "")
End Sub
PHP代码如下。
<?php
$con = mysqli_connect("localhost","root","","php") or die("Connection was not created!");
$select = "select name FROM users where id=5";
$run = mysqli_query($con,$select);
$value = mysqli_fetch_array($run);
$result = $value["name"];
echo $result;
?>
放置在 Excel 文件中的结果在文本下方有多个空格。这是excel和mysql之间通信的正确方法吗?
最佳答案
我不确定 VBA 方法以及您到底需要做什么,但一种解决方案是编写 requestdata.php 将查询结果解析为 .csv 文件,然后通过 VBA 将其加载到 Excel 中。由于 PHP 已经有一个可以使用的函数 fputcsv($file, $records)
( documentation ),因此将结果数组解析为 .csv 纯文本格式变得更加简单。 p>
关于php - 将数据从 VBA (excel) 发送到 php,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48046219/