php - 将 mysql 查询存储到 php 变量后发出 undefined variable

标签 php mysql arrays

我的 php 脚本有问题。我试图将 mysql 查询存储到 php 变量中,然后将结果转换为字符串。它似乎在循环中完成工作,但在我的脚本末尾,我有一个错误:

内部错误 -

Notice:Undefined variable: result

我想传递变量$data的全部内容。 你知道我做错了什么吗?

这是我的 php 脚本:

<?php
if (isset($_GET['data']) && $_GET['data']) {
$SelectDataFromRunTable="Select Reference, Variant, HGVSVar FROM run29012016";
$QueryResult=mysqli_query($conn,$SelectDataFromRunTable);
while($data = mysqli_fetch_array($QueryResult,MYSQLI_BOTH)){
print_r($data);
$data=implode(" ",$data);
}//end of while
$NameChecker='astringtest';
$options = array('features' => SOAP_SINGLE_ELEMENT_ARRAYS);

    $client = new SoapClient($URL, $options);
try {
   $result = $client->submitBatchJob(array('data'=>$data, 'process'=>$NameChecker))
                  ->submitBatchJobResult;

    } catch (Exception $e) {
        echo $e->getMessage();
    }


print_r($result);

mysqli_close($conn);
}
?>

最佳答案

while($data = mysqli_fetch_array($QueryResult,MYSQLI_BOTH)){
  $data = implode(" ",$data);
}

这不起作用,因为您在每个循环中都覆盖 $data:

while($data = mysqli_fetch_array(...)) 将计算数据集中的行数,直到最后。最后一个分配是 $data = null (例如,当您到达结果集末尾时)并且您将退出 while 循环。

您可以做的是将数据存储到另一个变量中,例如

$soap_data = "";
while($data = mysqli_fetch_array($QueryResult,MYSQLI_BOTH)){
  $soap_data .= " " . implode(" ",$data);
}

//...

$result = $client->submitBatchJob(array('data'=>$soap_data, 'process'=>$NameChecker))
                  ->submitBatchJobResult;

此外,正如 devpro 所说,包含变量的默认值总是更好。

关于php - 将 mysql 查询存储到 php 变量后发出 undefined variable ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35310300/

相关文章:

php - 默认忽略模式可以应用于 PHPCS 吗?

php - 单点登录或通过 PHP 登录

php - 将日期转换为月份名称和年份

arrays - 如何将不确定的数组传递并循环给 VBA 中的函数?

php - 使用CodeIgniter框架。如何 get_where 但将结果限制为过去 12 小时?

php - 在 PHP 中从另一个数组中提取一个数组

PHP/MySQL 在 WHERE/AND 子句中获取最大日期

Mysql将正在创建的一列的总和除以正在创建的另一列的总和

arrays - 对长度为 n 的未排序数组的 t 个最小整数进行排序

javascript - 使用 JavaScript 将对象转换为数组