[PHP] [MYSQL] $ _POST未定义索引并且无法插入到数据库中

时间:2016-11-19 22:09:16

标签: php mysql

Q1:我是编程新手,不知道我做错了什么。我收到以下错误:

  

注意:未定义的索引:[..]

中的pimage

这是代码:

<form method="post" enctype="multipart/form-data">
    <label for="pimage">photo</label>
    <input type="file" name="pimage" id="fileToUpload"/><br />
    <input type="submit" name="psubmit" value="register" />
</form>

这是我的PHP:

if (isset($_POST['psubmit'])) {
$image = $_POST['pimage'];

Q2:在上面的代码之后,表单应放在数据库中,我没有收到任何错误,但我没有看到数据库中出现的任何内容。这是PHP代码:

if (isset($_POST['psubmit'])) {
    include 'opendb.php';
    $stmt = $dbh->prepare("INSERT INTO new_products(Title, Price, CID,
Categorie, Sub-categorie, Description, Shipping) VALUES(:value1, :value2,
:value3, :value4, :value5, :value6, :value7)");
    $image = $_POST['pimage'];
    $values = array(
        'value1' => $_POST['ptitle'],
        'value2' => $_POST['pprice'],
        'value3' => $_POST['pcid'],
        'value4' => $_POST['pcat'],
        'value5' => $_POST['psubcat'],
        'value6' => $_POST['pdescription'],
        'value7' => $_POST['pshipping'], );

    $stmt->execute($values);
    $stmt->errorInfo();
}

很好,这个问题被标记为重复,但我没有看到给定链接中的awnser。我知道我必须设置$ _POST [&#39; pimage&#39;]并据我所知。我不想成为您提供信息所需的人,但请在给定链接中给我文本,以便完成这段代码。

1 个答案:

答案 0 :(得分:1)

只需查看有关上传文件{$ 3}}的$ _FILES全局变量和小教程。

你的文件名在这里$ _FILES [&#34; pimage&#34;] [&#34; name&#34;]。但是你需要使用函数move_uploaded_file将文件从临时php路径复制到你的服务器文件夹($ _ FILES [&#34; pimage&#34;] [&#34; tmp_name&#34;],$ target_file)。

你在params biding中有错误,试试这个:

if (isset($_POST['psubmit'])) {
    include 'opendb.php';
    $stmt = $dbh->prepare("INSERT INTO new_products(Title, Price, CID,
    Categorie, Sub-categorie, Description, Shipping) VALUES(:value1, :value2,
    :value3, :value4, :value5, :value6, :value7)");

    $values = array(
        ':value1' => $_POST['ptitle'],
        ':value2' => $_POST['pprice'],
        ':value3' => $_POST['pcid'],
        ':value4' => $_POST['pcat'],
        ':value5' => $_POST['psubcat'],
        ':value6' => $_POST['pdescription'],
        ':value7' => $_POST['pshipping']);

    $stmt->execute($values);
    $stmt->errorInfo();
}

并没有像$ _POST [&#39; pimage&#39;]这样的变量。只有$ _FILES [&#39; pimage&#39;]。