在PHP中,将本地上传的文件信息存入MySQL数据库需要先通过HTML表单获取文件,然后使用PHP的$_FILES全局变量处理上传的文件。建立与MySQL数据库的连接,并编写SQL语句将文件信息插入到数据库表中。执行SQL语句并关闭数据库连接。
在PHP中,我们可以使用mysqli或PDO扩展来连接MySQL数据库,以下是一个使用mysqli的例子:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn>connect_error) {
die("连接失败: " . $conn>connect_error);
}
// 预处理及绑定
$stmt = $conn>prepare("INSERT INTO MyGuests (firstname, lastname, email) VALUES (?, ?, ?)");
$stmt>bind_param("sss", $firstname, $lastname, $email);
// 设置参数并执行
$firstname = "John";
$lastname = "Doe";
$email = "john@example.com";
$stmt>execute();
echo "新记录插入成功";
$stmt>close();
$conn>close();
?> 在这个例子中,我们首先创建了一个到MySQL服务器的新连接,然后检查是否成功,如果连接失败,脚本将停止执行并打印错误信息,我们创建一个预处理的SQL语句,该语句用于插入新的记录,我们使用占位符("?")来代替实际的值,然后使用bind_param()方法将变量绑定到这些占位符,我们设置参数值,执行语句,关闭语句和连接。
下面是一个简单的介绍示例,展示了如何使用PHP将本地上传的文件信息存入MySQL数据库,该介绍包含以下列:数据库列名、数据类型、描述和PHP代码片段。
file_id$file_idfile_name$file_namefile_size$file_sizefile_type$file_typefile_path$file_pathuploaded_atCURRENT_TIMESTAMP以下是PHP代码片段,演示了如何将文件信息插入数据库:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn>connect_error) {
die("连接失败: " . $conn>connect_error);
}
// 处理文件上传
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
// 检查文件是否已经存在
if (file_exists($target_file)) {
echo "抱歉,文件已存在。";
$uploadOk = 0;
}
// 检查是否是真正的上传文件
if ($uploadOk == 0) {
echo "抱歉,文件未上传。";
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "文件 ". htmlspecialchars(basename( $_FILES["fileToUpload"]["name"])). " 已上传。";
// 插入数据到数据库
$file_name = basename($_FILES["fileToUpload"]["name"]);
$file_size = $_FILES["fileToUpload"]["size"];
$file_type = $_FILES["fileToUpload"]["type"];
$file_path = $target_file;
$sql = "INSERT INTO files (file_name, file_size, file_type, file_path, uploaded_at)
VALUES ('$file_name', $file_size, '$file_type', '$file_path', CURRENT_TIMESTAMP)";
if ($conn>query($sql) === TRUE) {
echo "新记录插入成功";
} else {
echo "错误: " . $sql . "<br>" . $conn>error;
}
} else {
echo "抱歉,文件上传时发生错误。";
}
}
$conn>close();
?> 请注意,这段代码仅用于示例,未包含所有必要的错误检查和安全措施(对上传的文件类型进行检查、防止SQL注入等),在实际应用中,你应该确保所有上传的文件都是安全的,并且对数据库操作进行适当的错误处理。
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/10444.html