将查询结果另存为 json 到网络驱动器上的文本文件中
Save query results as json into text file on network drive
我可以将结果保存为 JSON。我遇到的问题是将它保存到网络驱动器。
我使用以下方法确认路径是正确的:
if ($handle = opendir('//network/IS/folder1/folder2/targetdirectory'))
{
echo "Directory handle: $handle\n";
echo "Entries:\n";
// This is the correct way to loop over the directory.
while (false !== ($entry = readdir($handle))) {
echo "$entry\n";
}
// This is the WRONG way to loop over the directory.
while ($entry = readdir($handle)) {
echo "$entry\n";
}
closedir($handle);
}
使用上面的方法,我可以看到目标目录中的所有文件。故知道善。它是 writing/creating 要保存在目标目录中的文本文件。
整个过程是这样的:
<?php
include("../include/sessions.php");
if(isset($_POST['selectedOption']))
{
$svc1 = mysqli_real_escape_string($dbc, $_POST['selectedOption']);
$sql = "SELECT column1, column2, column3 FROM table WHERE column1 = '$svc1'";
$query = mysqli_query($dbc, $sql);
if($query)
{
$out = array();
while($row = $query->fetch_assoc())
{
$out[] = $row;
}
$json = json_encode($out); // I can change $json to echo and see the $out in the console as json
$file = fopen(__DIR__ . "//network/IS/folder1/folder2/targetdirectory", 'w');
fwrite($file, $json);
fclose($file);
}
else
{
echo "Error: " . mysqli_error($dbc);
}
?>
使用上述过程,没有任何内容被保存到目标目录中。
我能做些什么来解决这个问题?
我通过删除 DIR 并在路径末尾添加文件名解决了我的问题:
$file = fopen("//network/IS/folder1/folder2/targetdirectory/newFile.txt", 'w');
fwrite($file, $json);
fclose($file);
PHP命令"file_put_contents",虽然成功创建了一个文件,但只是继续追加到同一个文件。使用上面会覆盖目标目录中的目标文件。
我可以将结果保存为 JSON。我遇到的问题是将它保存到网络驱动器。
我使用以下方法确认路径是正确的:
if ($handle = opendir('//network/IS/folder1/folder2/targetdirectory'))
{
echo "Directory handle: $handle\n";
echo "Entries:\n";
// This is the correct way to loop over the directory.
while (false !== ($entry = readdir($handle))) {
echo "$entry\n";
}
// This is the WRONG way to loop over the directory.
while ($entry = readdir($handle)) {
echo "$entry\n";
}
closedir($handle);
}
使用上面的方法,我可以看到目标目录中的所有文件。故知道善。它是 writing/creating 要保存在目标目录中的文本文件。
整个过程是这样的:
<?php
include("../include/sessions.php");
if(isset($_POST['selectedOption']))
{
$svc1 = mysqli_real_escape_string($dbc, $_POST['selectedOption']);
$sql = "SELECT column1, column2, column3 FROM table WHERE column1 = '$svc1'";
$query = mysqli_query($dbc, $sql);
if($query)
{
$out = array();
while($row = $query->fetch_assoc())
{
$out[] = $row;
}
$json = json_encode($out); // I can change $json to echo and see the $out in the console as json
$file = fopen(__DIR__ . "//network/IS/folder1/folder2/targetdirectory", 'w');
fwrite($file, $json);
fclose($file);
}
else
{
echo "Error: " . mysqli_error($dbc);
}
?>
使用上述过程,没有任何内容被保存到目标目录中。
我能做些什么来解决这个问题?
我通过删除 DIR 并在路径末尾添加文件名解决了我的问题:
$file = fopen("//network/IS/folder1/folder2/targetdirectory/newFile.txt", 'w');
fwrite($file, $json);
fclose($file);
PHP命令"file_put_contents",虽然成功创建了一个文件,但只是继续追加到同一个文件。使用上面会覆盖目标目录中的目标文件。