具有多个输入的 PHP 多文件上传

标签 php mysql forms file-upload input

我是 PHP 新手。现在我的文件上传有问题。 所有文件都被移动,但它没有将文件名存储到数据库中。 它没有显示错误。我不知道要修这个。请帮帮我。

<form method="post" action="index.php?insert_ads" enctype="multipart/form-data">
    <input type="file" name="b1" id="b1"/>

    <b>Link</b></br>
    <input type="text" id="b1l" name="b1l" class="form-control"/></br>

    <b>Home Small</b> <b style="color: blue;">100 x 100 px</b></br>
    <input type="userfile" name="b2" id="b2"/><br>

    <b>Link</b></br>
    <input type="text" id="b2l" name="b2l" class="form-control"/></br>

    <input type="submit" name="submit" value="Publish"/>

</form></br>

<?php 

if(isset($_POST['submit'])){

    $b1 = $_FILES['b1']['name'];
    $tmp1 = $_FILES['b1']['tmp_name']; 
    $b1l = $_POST['b1l'];
    $b2 = $_FILES['b2']['name'];
    $tmp2 = $_FILES['b2']['tmp_name'];
    $b2l = $_POST['b2l'];

    move_uploaded_file($tmp1,"ads/$b1");
    move_uploaded_file($tmp2,"ads/$b2");

    $insert_posts = "insert into ads (b1,b2) value ('$b1','$b2')";
    $run_posts = mysql_query($insert_posts);
}
?>

最佳答案

尽管在使用 mysql_query 或注入(inject)攻击方面存在任何问题,但仍有许多地方可能会出错。

一个选项是查询正在执行,但您没有正确分配 $b1$b2 变量。如果行被添加到数据库中,但行为空(例如,SELECT b1, b2 FROM db.ads"返回 '',''< 的行,就会出现这种情况); 在这种情况下,您可能只是没有从 $_FILES 变量中正确提取 name 属性。您可以运行 var_dump($_FILES); 来查看有关它的更多信息并弄清楚您需要获得什么。

另一种可能性是查询没有执行。同样,这可能有几个原因——也许(不知何故)它没有达到代码中的那个点。你可以这样测试:

$insert_posts = "insert into ads (b1,b2) value ('$b1','$b2')";
echo $insert_posts; // if this shows up, you're running the next line also
$run_posts = mysql_query($insert_posts);

另一种选择是您的 error reporting级别未捕获错误。根据mysql_query,一个可能的原因是您没有连接到数据库。文档...

If no connection is found or established, an E_WARNING level error is generated.

E_WARNING 级别的错误将允许程序继续执行,除非您已将程序配置为不同的行为。

最后,您可能有一个语法错误(事实上,您似乎是这样——VALUES,而不是VALUE);根据文档,mysql_query 在出错时返回 false——它不会抛出错误。

您可以通过测试 false 并使用 mysql_error 函数来获取错误来操纵它:

$run_posts = mysql_query($insert_posts);
if ($run_posts === false) { 
  trigger_error("Error in SQL!\n" + mysql_error(), E_USER_ERROR); 
}

关于具有多个输入的 PHP 多文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29751155/

相关文章:

PHP 将 MySQL 结果合并到一个变量

javascript - 复杂的 sinatra 参数

javascript - 对多个表单字段使用 onblur 事件

php - 在 flush() 之后将 css 应用于 <img>; ob_flush();功能

php - 使用 PHP 和图像跟踪电子邮件

mysql - 如何在 MySQL 数据库中存储一对多关系?

javascript - 如果 jQuery AJAX 请求错误,设置变量值

php - 如何将用户输入的特定元素与数据库进行匹配? -php/mysql/ajax

javascript - Ajax - 通知 : Undefined index: id

java - 设置数据库 uft8mb4 后仍然存在黑色菱形和问号