php - 查询未插入值

标签 php mysql phpmyadmin

我正在制作一个脚本,用户可以在其中上传他的宠物的图像。我有这个代码:

<?php
    session_start();
    $name = $_SESSION['myusername'];
    $petName = $_POST['picup']; // a pet name picked by a dropdown list

    $con = mysql_connect( "localhost", "lalala", "blabla" );
    mysql_select_db( "lalal_animal", $con );
    if ( @$_POST ['submit'] ) {
      $file = $_FILES ['file'];
      $name1 = $file ['name'];
      $type = $file ['type'];
      $size = $file ['size'];
      $tmppath = $file ['tmp_name'];
      if ( $name1 != "" ) {
        if ( move_uploaded_file( $tmppath, 'upload/' . $name1 ) ) {
          $query = "insert into pics(animalName,username,image) VALUES('$petName','$name','$name1')";
          mysql_query( $query ) or die( 'could not updated:' . mysql_error() );
          echo "Your image upload successfully !!";
        }
      }
    }
    ?>

    <html >
      <head>
        <title>Image Upload</title>
      </head>
      <body>
        <form name="form" action="" method="post" enctype="multipart/form-data">
          Photo <input type="file" name="file" />
          <input type="submit" name="submit" value="submit" /> 
        </form>
      </body>
    </html>

运行此命令后,名为“animalName”的 tabele 列为空白

当我在 phpmyadmin 中运行此 SQL 命令时:

insert into pics(animalName,username,image) VALUES('Sparky','tester','sparky.jpg')

表格正常,animalName 列包含正确的值。 如果我这样做,就会显示宠物名:

echo $petName;

宠物名来自另一种形式。用户首先必须选择宠物,然后他会被重定向到上传表单。 这是您请求的下拉列表:

<table width="480" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="upload" method="post" action="upload_form.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong>Upload image</strong></td>
</tr>
<td>Select a pet</td>
<td>:</td>
<td>

<?php
mysql_connect('localhost', 'blabla', 'lalal');
mysql_select_db('lalala_animal');

$sql = "SELECT name FROM animal where username='$name'";
$result = mysql_query($sql);

echo "<select name='picup'>";
while ($row = mysql_fetch_array($result)) {
    echo "<option value='" . $row['name'] . "'>" . $row['name'] . "</option>";
}
echo "</select>";
?>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Upload"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>

我怀疑下面的 php 代码的 HTML 表单有问题,但我不明白是什么问题。

最佳答案

在您的评论中,您提到 $petName 来自表单中的选择。

但是,在表单中,缺少选择,因此 $petName ($_POST['picup']) 为空。

    <html >
      <head>
        <title>Image Upload</title>
      </head>
      <body>
        <select name="picup">
          <option>Sparky</option>
          <option>Lucky</option>
        </select>
        <form name="form" action="" method="post" enctype="multipart/form-data">
          Photo <input type="file" name="file" />
          <input type="submit" name="submit" value="submit" /> 
        </form>
      </body>
    </html>

关于php - 查询未插入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12329371/

相关文章:

mysql - SQL 错误 #1022 无法写入;表中的重复键

php - Magento,使用 SQL 以编程方式将类别添加到脚本中的产品

php - 有没有办法通过网页上的链接打开用户计算机上本地网络上的文件?

php - 看CI源码后的一些基本问题

javascript - 如何修复 Ajax 从数据库中获取任何内容?

mysql - 安装多个 Moodle 包

java - 为什么我总是出现 SQL 参数索引超出范围异常?

php - Mysql查询使用WHEN和AND更新具有多个条件的多列

java.sql.SQLException : sql injection violation, 注释不允许:选择

mysql - 为mysql中的列添加索引