是否可以同时存储和检索MySQL数据库中的数据


Is it possible to store and retrieve data from MySQL database simultaneously

我想上传一个文件,我将在其中存储文件的名称,链接和大小。然后,我想检索文件的链接,以便我可以读取它并在解压缩文件后将文件的内容存储在数据库中。

是否可以在单个 PHP 文件中执行此操作?现在,当我上传文件时,它将文件的名称,链接和大小存储到数据库中。但是为了读取上传的文件,提取内容并将内容存储到数据库中,我必须再次重新上传相同的文件。

用户.XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<user>
    <FirstName>Example 1</FirstName>
    <LastName>Example 2</LastName>
    <Phone>Example 3</Phone>
    <Address>Example 4</Address>
</user>

下面是 PHP 脚本:

<?php
//report any error
error_reporting(E_ALL); ini_set('display_errors', 1); mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
//connect to database
include 'conn.php';
$ds = "/";
$storeFolder = 'uploads';

if(!empty($_FILES)) {
    $fname = basename($_FILES['file']['name']);
    $ftype = $_FILES['file']['type'];
    $fsize = $_FILES['file']['size'];
    $flink = 'http://localhost/aps/upload/' . rawurlencode($fname);
    $xml = simplexml_load_file($flink);
    $firstname = $xml->FirstName;
    $lastname = $xml->LastName;
    $phone = $xml->Phone;
    $address = $xml->Address;
    $tempFile = $_FILES['file']['tmp_name'];
    $targetPath = dirname(__FILE__) . $ds . $storeFolder . $ds;
    $targetFile = $targetPath . $_FILES['file']['name'];
    move_uploaded_file($tempFile, $targetFile);
    $query = "INSERT INTO user_details (link, name, size, type, first_name, last_name, phone, address) VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
    $stmt = $conn->prepare($query);
    $stmt->bind_param('ssssssss', $flink, $fname, $fsize, $ftype, $firstname, $lastname, $phone, $address);
    $stmt->execute();
    $stmt->store_result();
    $stmt->bind_result($link, $name, $size, $type, $first_name, $last_name, $phone, $address);

}
//Close statement
$stmt->close();
//Close connection
$conn->close();
?>

感谢您的帮助。谢谢。

看起来您在上传文件后正在下载文件,请尝试在执行move_uploaded_file后加载文件...并且您希望将$targetFile的内容插入到表中user_details字段"file_data"中,请尝试更改为

move_uploaded_file($tempFile, $targetFile);
$xml = simplexml_load_file( $targetFile);
$firstname = $xml->FirstName;
$lastname = $xml->LastName;
$phone = $xml->Phone;
$address = $xml->Address;
$query = "INSERT INTO user_details (link, name, size, type, first_name, last_name, phone, address) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
$stmt = $conn->prepare($query);
$stmt->bind_param('ssssssss', $flink, $fname, $fsize, $ftype, $firstname, $lastname, $phone, $address);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($link, $name, $size, $type, $first_name, $last_name, $phone, $address);