【问题标题】:mysqli bind_param not workingmysqli bind_param 不工作
【发布时间】:2012-12-14 09:45:53
【问题描述】:

我有以下查询,它工作正常。

$stmt = $sql->prepare("INSERT INTO _dashboard_users(
            Email,
            Password,
            FirstName,
            LastName,
            BusinessName,
            BusinessRole,
            Address,
            City,
            State,
            PostalCode,
            Phone,
            Website) VALUES(?,md5(?),?,?,?,?,?,?,?,?,?,?)");            
        $stmt->bind_param("ssssssssssis",
            $Email,
            $Password,
            $FirstName,
            $LastName,
            $BusinessName,
            $BusinessRole,
            $Address,
            $City,
            $State,
            $PostalCode,
            $Phone,
            $Website);
        $stmt->execute();

但是这个让人头疼。

$stmt = $sql->prepare("INSERT INTO scrape(
            Kategorie,
            Hersteller,
            Artikelnummer,
            Bezeichnung,
            EAN,
            UPC,
            Beschreibung,
            Technische_Daten,
            Sprache,
            URL,
            Marktrelease,
            Bild) VALUES(?,?,?,?,?,?,?,?,?,?,?,?)");
        $stmt->bind_param("ssssssssssss",
            $Kategorie,
            $Hersteller,
            $Artikelnummer,
            $Bezeichnung,
            $EAN,
            $UPC,
            $Beschreibung,
            $Technische_Daten,
            $Sprache,
            $URL,
            $Marktrelease,
            $Bild);
        $stmt->execute();

致命错误:在非对象上调用成员函数bind_param()~

谁能告诉我为什么会发生这种情况?我 100% 确定我在写什么,bind_param 是 $stmt 的成员函数。

**UPDATE:** I initiliazed $sql like this $sql = new mysqli(DB_HOST,DB_USER,DB_PASS,DB_NAME);

【问题讨论】:

    标签: mysqli


    【解决方案1】:

    您的第二个查询返回错误。 $sql->prepare 失败,因此 $stmt 不是对象(如您的错误中所述)。您不能在非对象上调用方法。

    【讨论】:

    • 哦,真的吗?一旦我做了初始化 $stmt = $sql->prepare() 就变成了一个对象。那么,你是怎么发现 $sql->prepare failed 的呢?
    • Fatal error: Call to a member function bind_param() on a non-object。你的错误告诉了我。
    • 你能看看我的查询吗?此外,您可以将其与第一个运行良好的查询进行比较。
    • 您的字段中可能有错误。只需在 phpmyadmin 或 mysql 命令行中运行即可。
    • 好的,我将它运行到我的 phpmyadmin:1 插入行。插入的行 ID:267(查询耗时 0.0005 秒)
    猜你喜欢
    • 2016-03-03
    • 2015-09-01
    • 2013-07-31
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多