php - mysqli_query() 期望参数 1 为 mysqli,在/Applications/MAMP/htdocs/中给出的对象

标签 php mysql sql database mysqli

它给了我这个警告: 警告:mysqli_query() 期望参数 1 为 mysqli,在/Applications/MAMP/htdocs/dashboard/pages/index.php 第 45 行中给出的对象

警告:mysqli_error() 期望参数 1 为 mysqli,第 50 行/Applications/MAMP/htdocs/dashboard/pages/index.php 中给出的对象

我正在尝试将项目插入名为产品的表中。但不知怎的,这个错误不会消失。

你能告诉我我做错了什么吗?非常感谢。

这是 dbconfig.php

<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "products";
try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
catch(PDOException $e)
    {
    echo "Connection failed: " . $e->getMessage();
    }

?>

这是表格 enter image description here

这是php代码

<?php

require_once('dbconfig.php');
$upload_dir = 'uploads/';

if(isset($_POST['submit'])){
    $product_picture = $_FILES['product_picture']['name'];
    $imgTmp = $_FILES['product_picture']['tmp_name'];
    $imgSize = $_FILES['product_picture']['size'];
    $product_name = $_POST['product_name'];
    $product_number = $_POST['product_number'];

    $product_quantity = $_POST['product_quantity'];
    $product_price = $_POST['product_price'];
    $product_description = $_POST['product_description'];

    if(empty($product_name)){
        $errorMsg = 'Please input product name';
    }elseif(empty($product_number)){
        $errorMsg = 'Please input product number';
    }elseif(empty($product_quantity)){
        $errorMsg = 'Please input product quantity';
    }elseif(empty($product_price)){
        $errorMsg = 'Please input product price';
    }elseif(empty($product_description)){
        $errorMsg = 'Please input product description';
    }else{
        $imgExt = strtolower(pathinfo($product_picture, PATHINFO_EXTENSION));
        $allowExt = array('jepg', 'jpg', 'png', 'gif');
        $productPic = time().'_'.rand(1000,9999).'.'.$imgExt;
        if(in_array($imgExt, $allowExt)){
            if($imgSize < 5000000){
                move_uploaded_file($imgTmp,$upload_dir.$productPic);
            }else{
                $errorMsg = 'Image too large';
            }
        }else{
            $errorMsg = 'Please select a valid image';
        }
    }

    if(!isset($errorMsg)){
        $sql = "insert into products(product_picture, product_name, product_number, product_quantity, product_price, product_description)
                values('".$productPic."', '".$product_name."', '".$product_number."', '".$product_quantity."', '".$product_price."', '".$product_description."')";
        $result = mysqli_query($conn, $sql);
        if($result){
            $successMsg = 'New record added sucessfully';
            header('refresh:5;index.php');
        }else{
            $errorMsg = 'Error'.mysqli_error($conn);
        }
    }
}

?>

这是表单部分

<form class="inputarea text-center" method="post" action="" enctype="multipart/form-data">
                            <p id="addProduct" class="addTitle">Add new product</p>
                            <input id="pName" class="inputs" type="text" placeholder="Name" name="product_name" >

                            <input id="choose" type = "file" name = "product_picture" />

                            <input id="pNumber" class="inputs" type="number" placeholder="Prodect No." name="product_number" >
                            <input id="pQuantity" class="inputs" type="text" placeholder="Quantity" name="product_quantity" >
                            <input id="pPrice" class="inputs" type="text" placeholder="Price" name="product_price" >
                            <textarea id="pDescription" class="inputs" placeholder="Description" name="product_description"></textarea>
                            <button id="confirmBut" type="submit" name="submit" class="btn btn-primary btn-lg center-block">Confirm</button>
                        </form>

最佳答案

代码混合了PDOmysqli接口(interface)。但这是行不通的。

$conn = new PDO("...");

mysqli_query($conn, ... );
<小时/>

如果我们创建一个PDO连接,那么我们就使用PDO接口(interface)函数。

如果我们使用mysqli_函数,那么我们将创建一个mysqli连接。

关于php - mysqli_query() 期望参数 1 为 mysqli,在/Applications/MAMP/htdocs/中给出的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42151337/

相关文章:

php - Codeception - 无法在 Firefox 中保存和加载 session 快照

php - 在 CakePHP 中查找内存和 CPU 时间瓶颈

php - 将 while 循环生成的 xml 分配给变量

mysql - 将多行压缩为一个摘要行

php - 通过选择进行子查询选择

javascript - URL 重定向未从正确的相对来源加载资源

php - 将数组转换为 .ini 文件

MySql - 你能有在多表中自动更改的引用吗?

java - SQL语句插入时出错

php - 选择和插入数据时保护 php 和 sql