php - 将数据从 VBA (excel) 发送到 php,反之亦然

标签 php mysql vba

基本上我想使用 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/

相关文章:

php - 我有文本框的数组变量,如何正确使用 $_POST?

vba - 比较具有相同单元格数的两个行范围

excel - TRIM 函数/使用 VBA 删除单元格中的空格

mysql - 在 SELECT 上为日历日期范围创建重复记录

mysql - 如果其他表中不存在 id,则获取不同的行并使用合并

php - 如何在php中对数据库模型进行json编码?

vba - 如何强制 VBA 进行实整数数学运算?

php - PHP伪随机有多随机,4个字节

php - Codeigniter - 路由到 Controller (如果存在),如果不存在则使用默认值

php - 在 PHP 中获取一个类的所有实例