【问题标题】:Unable to retrieve image from mysql db无法从 mysql 数据库中检索图像
【发布时间】:2017-09-21 06:53:29
【问题描述】:

我正在创建一个客户管理系统,我已经在我的数据库中添加了一张图片,但现在我想要在我的编辑页面上检索这些图片,但我的代码不起作用可能是我犯了错误我是这个领域的新手。 在这种情况下请帮助我。

没有错误显示,但图像没有出现。

谢谢!

<?php
require_once('includes\database.php');
?>

<?php
$id = $_GET['id'];

$query = "SELECT * FROM customer
                INNER JOIN customer_address
                ON customer.id=customer_address.customer
                WHERE customer.id=$id";
$mysqli->query($query);

if ($result = $mysqli->query($query)) {
    while ($row = $result->fetch_assoc()) {
        $name = $row['name'];
        $email = $row['email'];
        $phone = $row['phone'];
        $password = $row['password'];
        $image = $row['image'];
        $address = $row['address'];
        $Country = $row['Country'];
        $City = $row['City'];
        $Zip_code = $row['Zip_code'];
    }

    $result->close();
} else {

    echo "error";
}
?>

<?php
if ($_POST) {

    $id = $_GET['id'];

    $name = mysqli_real_escape_string($mysqli, $_POST['name']);
    $email = mysqli_real_escape_string($mysqli, $_POST['email']);
    $phone = mysqli_real_escape_string($mysqli, $_POST['phone']);
    $password = md5(mysqli_real_escape_string($mysqli, $_POST['password']));
    $image = $_FILES['image']['name'];
    $tmp_image = $_FILES['image']['tmp_name'];
    $address = mysqli_real_escape_string($mysqli, $_POST['address']);
    $Country = mysqli_real_escape_string($mysqli, $_POST['Country']);
    $City = mysqli_real_escape_string($mysqli, $_POST['City']);
    $Zip_code = mysqli_real_escape_string($mysqli, $_POST['Zip_code']);

    $sql = "UPDATE customer SET 
        name='$name',
        email='$email',
        phone='$phone',
        password='$password',
        image='$image'
        WHERE id=$id";

    $mysqli->query($sql);

    $sql = "UPDATE customer_address SET 
        address='$address',
        Country='$Country',
        City='$City',
        Zip_code='$Zip_code'
        WHERE customer=$id";

    $mysqli->query($sql) or die();
    $msg = "Record updated";
    header('url: index.php');

    exit;
}
?>

<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>CManager | Edit Customer</title>
        <!-- Bootstrap core CSS -->
        <link href="css/bootstrap.min.css" rel="stylesheet">
        <!-- Custom styles for this template -->
        <link href="css/jumbotron-narrow.css" rel="stylesheet">
    </head>
    <body>
        <div class="container">
            <div class="header">
                <ul class="nav nav-pills pull-right">
                    <li class="active"><a href="index.php">Home</a></li>
                    <li><a href="add_customer.php">Add Customer</a></li>
                </ul>
                <h3 class="text-muted">Store CManager</h3>
            </div>

            <div class="row marketing">
                <div class="col-lg-12">
                    <h2>Edit Info</h2>
                    <table class="table table-striped">

                        <form method="POST">
                            <table>
                                <tr>
                                    <td>Name:</td>
                                    <td><input type="text" name="name" required="true" value="<?php echo $name; ?>"></td>
                                </tr>

                                <tr>
                                    <td>Email:</td>
                                    <td><input type="email" name="email" required="true" value="<?php echo $email; ?>"></td>
                                </tr>

                                <tr>
                                    <td>Phone:</td>
                                    <td><input type="phone" name="phone" required="true" value="<?php echo $phone; ?>"></td>
                                </tr>

                                <tr>
                                    <td>Password:</td>
                                    <td><input type="password" name="password" required="true" value="<?php echo $password; ?>"></td>
                                </tr>

                                <tr>
                                    <td>Image:</td>
                                    <td><img src="<?php echo $row->image; ?>" height="100px" height="100px"></td>
                                </tr>

                                <tr><td><h2>Other Details:</h2><td></tr>
                                <tr>
                                    <td>Address:</td>
                                    <td><input type="text" name="address" value="<?php echo $address; ?>"></td>
                                </tr>
                                <tr>
                                    <td>Country:</td>
                                    <td><input type="text" name="Country" value="<?php echo $Country; ?>"></td>
                                    </select> 
                                </tr>
                                <tr>
                                    <td>City:</td>
                                    <td><input type="text" name="City" value="<?php echo $City; ?>"></td>
                                    </select>
                                </tr>
                                <tr>
                                    <td>Zip Code:</td>
                                    <td><input type="text" name="Zip_code" value="<?php echo $Zip_code; ?>"></td>
                                </tr>

                                <tr><td><input type="submit" value="update" name="submit"></td></tr>

                            </table>
                        </form>
                    </table>
                </div>
            </div>
            <div class="footer">
                <p>&copy; Company 2014</p>
            </div>
        </div> 
    </body>
</html> 

【问题讨论】:

  • 不把图片存入数据库,只要把图片名存起来,上传到你的项目目录就行了......
  • 请访问bobby-tables.com了解SQL注入。逃避是不够的。

标签: php mysql file


【解决方案1】:

当您从查询$image = $row['image']; 中获取图像值时,您应该使用$image 而不是$row['image']$row-&gt;image

试试下面的代码行,这可能对你有帮助。

<td><img src="path/to/image/<?php echo $image; ?>" height="100px" height="100px"></td>

【讨论】:

    【解决方案2】:

    试试这个

    <tr><td>Image:</td><td><img src="<?php echo $image; ?>" height="100px" height="100px"></td>
    

    希望这对你有用

    【讨论】:

      【解决方案3】:

      如果您将图像名称保存在数据库表中并将图像上传到目录文件夹中会更好,这样您就可以轻松完成。但在你的问题中首先定义 $image

      <?php
      require_once('includes\database.php');
      
      $image = '';
      $id= $_GET['id'];
      
      /* your code */
      

      然后更新

      <td><img src="<?php echo $row->image; ?>" height="100px" height="100px"></td>
      

      <td><img src="<?php echo $image; ?>" height="100px" height="100px"></td>
      

      如果您的 $image 变量在文件夹中包含完整的图像路径和图像上传,那么它将起作用,或者使用youruploadfolder/&lt;?php echo $image; ?&gt;

      【讨论】:

        猜你喜欢
        • 2014-07-20
        • 2021-10-07
        • 1970-01-01
        • 2014-02-19
        • 2015-07-06
        • 2013-01-08
        • 1970-01-01
        • 2012-10-07
        相关资源
        最近更新 更多