如何在 MySQL 数据库中保存文件名



我在下面开发了这段代码,让用户上传一个文件并将这个文件的名称保存在数据库中,以便以后能够访问它,上传是正常完成的,它转到指定的文件夹,但名称没有保存在数据库中,有谁知道代码出了什么问题?尤其是在move_uploaded_file以下,因为到目前为止它有效,然后它出错了。

<?php
if (isset($_POST['enviar'])) {
$arq = $_FILES['arquivo']['name'];
$arq = str_replace(" ", "_", $arq);
$arq = str_replace("ç", "c", $arq);
if (file_exists("uploads/$arq")) {
  $a = 1;
  while (file_exists("uploads/[$a]$arq")) {
    $a++;
  }
  $arq = "[".$a."]".$arq;
}
if (move_uploaded_file($_FILES['arquivo']['tmp_name'], 'uploads/'.$arq)) {
  $objDb = new db();
  $link = $objDb->conecta_mysql();
  $sql = "insert into arquivos (email_vol, nomearq) values ('$email', '$arq')";
  if (mysqli_query($link, $sql)){
    echo 'Plano de aula 1 enviado com sucesso!';
  } else {
    echo (mysqli_error($link));
    echo 'Erro ao enviar o plano de aula!';
  }
} else {
  echo "Nenhum arquivo selecionado!";
}
}
?>

这是用于连接数据库的代码:

class db {
//host
private $host = 'localhost';
//usuario
private $usuario = '111111';
//senha
private $senha = '11111111';
//banco de dados
private $database = 'dsfadsfasd';
public function conecta_mysql(){
//criar a conexão
$con = mysqli_connect($this->host, $this->usuario, $this->senha, $this->database);
//ajustar a charser de cominicação entre a aplicação e o bd
mysqli_set_charset($con, 'utf8');
//verificar se houve erro de conexão
if (mysqli_connect_errno()) {
    echo 'Erro ao tentar se conectar com o banco de dados'.mysqli_connect_error();
}
return $con;
}
}
?>

现在没有评论的特权,但这不应该是这样的,而且你的sql脚本末尾没有分号

$sql = "insert into arquivos (email_vol, nomearq) values ('" . $email . "', '" 
 .$arq . "');";

还有这个

if (file_exists("uploads/" . $arq)) {
  $a = 1;
  while (file_exists("uploads/". $a . ".". $arq)) {
    $a++;
  }
  $arq = $a.".".$arq;
}

文件编号和姓名之间带有句号

最新更新