我的 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/