php - 表单未提交到数据库

标签 php mysql database forms

我正在尝试将信息输入数据库,同时将文件上传到服务器并将其链接存储在数据库中。此时文件已上传,但数据库中没有显示任何表单数据,并返回表单无法提交的错误消息,但实际上并未指定错误。

任何帮助都会很棒!

<?php

$dbc=mysql_connect('localhost', 'mgertenbach', 'mollyr');
mysql_select_db('mgertenbach', $dbc);


if($_SERVER['REQUEST_METHOD']=='POST'){
    //you needed to move this INSIDE the conditional.. you had it up at line 15 which... woudl cause the errors to show.
    $sqlInsertString = "INSERT INTO band_information
            VALUES ('{$_POST['bandname']}', '{$_FILES['bandphoto']['name']}', '{$_POST['bandbio']}', '{$_POST['bandcity']}', '{$_POST['bandstate']}', '{$_POST['bandzipcode']}', '{$_POST['bandgenre']}', '{$_POST['bandlink']}');";

    if(move_uploaded_file($_FILES['bandphoto']['tmp_name'], "C:\\HTML\\mgertenbach\\BAND\\photos\\{$_FILES['bandphoto']['name']}") && @mysql_query($sqlinsertString, $dbc)){
        print '<p>Thanks for submitting your band!</p>';
    } else {
        print '<p>Could not submit band because: <br/>' .
        mysql_error($dbc) . '</p>';
    }
}                   



?>

    <h3>Please fill out the following information.</h3>

    <form action="submitband.php" method="post" enctype="multipart/form-data">
        <fieldset><legend>Who Are You?</legend>
            <label>Band Name: <input type="text" name="bandname" size="10"/></label>
            <br/><br/>

            <label>Link to Photo*: <input type="hidden" name="MAX_FILE_SIZE" value="300000" /><input type="file" id="bandphoto" name="bandphoto" /></label>
            <br/>&nbsp;&nbsp;&nbsp;*image must be a square file
            <br/><br/>
            <label>Enter a short bio: <br/><textarea name="bandbio" cols="40" rows="10"></textarea></label>
        </fieldset>
        <br/><br/> 
        <fieldset><legend>Where Are You From?</legend>
            <label>City: <input type="text" name="bandcity" size="10"/></label>
            <br/><br/>
            <label>State: 
                <select id="bandstate" name="bandstate">
                        <option value=""> </option>
                        <option value="AL">Alabama</option>
                        <option value="AK">Alaska</option>
                        <option value="AZ">Arizona</option>
                        <option value="AR">Arkansas</option>
                        <option value="CA">California</option>
                        <option value="CO">Colorado</option>
                        <option value="CT">Connecticut</option>
                        <option value="DE">Delaware</option>
                        <option value="DC">District Of Columbia</option>
                        <option value="FL">Florida</option>
                        <option value="GA">Georgia</option>
                        <option value="HI">Hawaii</option>
                        <option value="ID">Idaho</option>
                        <option value="IL">Illinois</option>
                        <option value="IN">Indiana</option>
                        <option value="IA">Iowa</option>
                        <option value="KS">Kansas</option>
                        <option value="KY">Kentucky</option>
                        <option value="LA">Louisiana</option>
                        <option value="ME">Maine</option>
                        <option value="MD">Maryland</option>
                        <option value="MA">Massachusetts</option>
                        <option value="MI">Michigan</option>
                        <option value="MN">Minnesota</option>
                        <option value="MS">Mississippi</option>
                        <option value="MO">Missouri</option>
                        <option value="MT">Montana</option>
                        <option value="NE">Nebraska</option>
                        <option value="NV">Nevada</option>
                        <option value="NH">New Hampshire</option>
                        <option value="NJ">New Jersey</option>
                        <option value="NM">New Mexico</option>
                        <option value="NY">New York</option>
                        <option value="NC">North Carolina</option>
                        <option value="ND">North Dakota</option>
                        <option value="OH">Ohio</option>
                        <option value="OK">Oklahoma</option>
                        <option value="OR">Oregon</option>
                        <option value="PA">Pennsylvania</option>
                        <option value="RI">Rhode Island</option>
                        <option value="SC">South Carolina</option>
                        <option value="SD">South Dakota</option>
                        <option value="TN">Tennessee</option>
                        <option value="TX">Texas</option>
                        <option value="UT">Utah</option>
                        <option value="VT">Vermont</option>
                        <option value="VA">Virginia</option>
                        <option value="WA">Washington</option>
                        <option value="WV">West Virginia</option>
                        <option value="WI">Wisconsin</option>
                        <option value="WY">Wyoming</option>
                    </select></label>  
            <br/><br/>
            <label>Zipcode: <input type="text" name="bandzipcode" size="10"/></label>
        </fieldset>  
        <br/><br/>
        <fieldset><legend>What's Your Music Like?</legend>
            <label>Genre: 
                <select name="bandgenre">
                        <option value="country">Country</option>
                        <option value="electronic">Electronic</option>
                        <option value="folk">Folk</option>
                        <option value="indie">Indie</option>
                        <option value="punk">Punk</option>
                        <option value="rock">Rock</option>
                </select>
                </label>
            <br/><br/>
            <label>Share a link to where we can hear it: <input type="text" name="bandlink" size="40"/></label>
        </fieldset>
        <br/><br/>
        <input type="submit" value="submit"/>          
    </form>

最佳答案

  1. 为什么有这样的大括号'{$_POST['bandname']}'

    这是 PHP 而不是 bash,所以摆脱它们。

  2. however does not actually specify the error

    从中删除@ @mysql_query 查看错误

  3. 您的代码容易受到 SQL 注入(inject)的攻击,如 注释使用参数化查询或PDO

关于php - 表单未提交到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20481175/

相关文章:

java - 错误 java.lang.NoSuchMethodError

sql-server - 不同的架构会在从一个或多个分片检索数据时产生错误。收到的底层错误消息是 : Invalid object name

php - 使用 jQuery 将弹出窗口 uploader 转换为内联脚本?

php - Laravel: SQLSTATE[HY000] [2054] 服务器请求客户端未知的身份验证方法

php - 在即时搜索脚本中使用 PHP 而不是 JSON 作为输出

php - CakePHP 2.0 - virtualFields 不用于带选项的查找操作

php - 什么是缓存标记?

php - MySQL 导出导入,外键 ID 自动递增

PHP 在 PDO 语句准备时崩溃

php - 如何在 3 向 MYSQL 连接中检索以逗号分隔的链接 ID 列表?