php - 当插入数据存在时,PDO Mysql数据不显示

标签 php mysql pdo

当我显示数据库中的数据时出现问题,我看到页面中的所有数据。但是当我要插入时,数据是不可见的。

enter image description here

这是代码:

    <?php
    include 'db.php';
    $stmt = $db->prepare('SELECT * FROM ' . $table);
    $stmt->execute();

    if(isset($_POST['btn-insert'])){

        $prodname = $_POST['prod_name'];
        $prodsupp = $_POST['prod_supplier'];
        $prodprice = $_POST['prod_price'];


    }
?>
<html>
    <head><title></title></head>
    <body>
            <table cellpadding="4" cellspacing="2" border='1'>
                <tr>
                    <th>Product ID</th>
                    <th>Product NAME</th>
                    <th>Product SUPPLIER</th>
                    <th>Product PRICE</th>
                </tr>
                <?php while($product = $stmt->fetch(PDO::FETCH_OBJ)) { ?>
                <tr>
                    <td><?php echo $product->prod_id; ?></td>
                    <td><?php echo $product->prod_name; ?></td>
                    <td><?php echo $product->prod_supplier; ?></td>
                    <td><?php echo $product->prod_price; ?></td>
                </tr>
                <?php } ?>
            </table>
            <br>
            <br>

            <form action="" method="post">
                <table cellspacing="2" cellpadding="2" border="1">
                    <tr>
                        <td>Product name:</td>
                        <td><input type="text" name="prod_name"></td>
                    </tr>
                    <tr>
                        <td>Product supplier:</td>
                        <td><input type="text" name="prod_supplier"></td>
                    </tr>
                    <tr>
                        <td>Product Price:</td>
                        <td><input type="text" name="prod_price"></td>
                    </tr>
                    <tr>
                        <td colspan="2"><input type="submit" name="btn-insert" value="INSERT"></td>
                    </tr>
                </table>
            </form>

    </body>
</html>

这是我尝试插入并更改顶部的 php 脚本时的代码:

<?php
    include 'db.php';
    $stmt = $db->prepare('SELECT * FROM ' . $table);
    $stmt->execute();

    if(isset($_POST['btn-insert'])){

        $prodname = $_POST['prod_name'];
        $prodsupp = $_POST['prod_supplier'];
        $prodprice = $_POST['prod_price'];

        $db = new PDO('mysql:host' . $host . ';dbname=' . $dbname, $dbusername, $dbpassword);
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $stmt = $db->prepare("INSERT INTO tbl_product(prod_name, prod_supplier, prod_price) VALUES('$prodname', '$prodsupp', '$prodprice')");

    }
?>

这会发生什么: enter image description here

这就是我目前遇到的问题。

最佳答案

您刚刚在“stmt”变量中创建了冲突... 首先

  $stmt = $db->prepare('SELECT * FROM ' . $table);
  $stmt->execute();

然后:

 $stmt = $db->prepare("INSERT INTO...

既然你准备好了插入语句,

这没有获取任何东西.. 检查一下冲突就可以了..

  $product = $stmt->fetch(PDO::FETCH_OBJ)

关于php - 当插入数据存在时,PDO Mysql数据不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32918618/

相关文章:

php - 选择并减少 mysql 查询的字段值

php - 查询数据库时出错-PHP,SQL和PHPMyAdmin

mysql - 在mysql中显示周数

php - 动态 PHP PDO MYSQL 查询不更新 [未返回错误]

php - PDO 删除不起作用并且不会抛出错误(添加 base64 时)

php - 结合 angular js 和 php - 将数据插入数据库失败

java - 连接到 Android 的 php 文件

php - .env 更改后,Laravel 数据库仍使用旧名称

mysql - 什么数据库适合存储图像和视频?

php - 如何在我的 pdo 代码中添加条件