首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bind_param()错误

Bind_param()错误
EN

Stack Overflow用户
提问于 2014-02-07 11:00:19
回答 1查看 52关注 0票数 0

当我运行我的代码时,我会得到以下错误:

代码语言:javascript
复制
Error: Call to a member function bind_param() on a non-object

我搜索了几个小时这个问题,我不知道问题出在哪里。我知道这个主题已经发布了很多次,但我是php初学者,我不明白为什么这不起作用。

这是我使用的代码:

班级:

代码语言:javascript
复制
class Item {
    private $iname;

    function __construct($name)
    {
        $this->iname = $name;
    }

    public function addItem()
    {
        global $mysqli, $db_table_prefix;

            $stmt = $mysqli->prepare("INSERT INTO ".$db_table_prefix."items (
                    iname,
                    VALUES (
                    ?
                    )");
            $stmt->bind_param("s", $this->iname);
            $stmt->execute();
            $inserted_id = $mysqli->insert_id;
            $stmt->close();

    }
}

并张贴表格页:

代码语言:javascript
复制
require_once("models/config.php");


if(!empty($_POST))
    {
        $item_name = trim($_POST["iname"]);

        $item = new Item($item_name);
        $item->addItem();

    }

require_once("models/header.php");
echo "
<body onload='initialize()'>
    <div id='wrapper'>
        <div id='top'><div id='logo'></div></div>
        <div id='content'>
            <h>Add new Item</h>
            <div id='main'>
                <div id='regbox'>
                    <form name='newItem' action='".$_SERVER['PHP_SELF']."' method='post'>
                        <p>
                        <label>Item description:</label>
                        <input type='text' name='iname' />
                        </p>
                        <input type='submit' name='Submit' value='Add Item'/>
                    </form>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";
?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-07 11:16:23

有一个SQL语法错误:

代码语言:javascript
复制
INSERT INTO ".$db_table_prefix."items (
                iname,
                VALUES (
                ?
                )

这应该是:

代码语言:javascript
复制
INSERT INTO ".$db_table_prefix."items (
                iname)
                VALUES (
                ?
                )

由于语法错误,没有创建$stmt对象,因此出现了错误Call to a member function bind_param() on a non-object

如果遇到问题,请始终输出MySQL错误消息:

代码语言:javascript
复制
echo $mysqli->error;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21625990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档