【问题标题】:mysqli object has no method executemysqli 对象没有执行方法
【发布时间】:2014-10-23 05:54:44
【问题描述】:

一直在阅读,但我找不到准确的答案。我只想使用准备好的语句查询数据库,但我得到了:

调用未定义的方法 mysqli::execute()

这是我目前拥有的:

$conn=mysqli_connect($dbhost, $dbuser, $dbpass, $db) or die(mysqli_error($conn));

$conn->prepare("SELECT AccomodationID, PUPoint, PUTime, Entity_ID, Comments FROM ACCOMMODATION ORDER BY PUPoint ASC");
$conn->execute();
$conn->bind_result($AccomodationID, $PUPoint, $PUTime, $Entity_ID, $Comments);
$conn->store_result();

编辑

已解决。非常感谢 TML 的帮助。 mysqli->prepare 返回一个mysqli_stmt 对象。

$stmt = $conn->prepare("SELECT AccomodationID, PUPoint, PUTime, Entity_ID, Comments FROM ACCOMMODATION ORDER BY PUPoint ASC");

然后我可以使用该对象的方法,如下所示:

$stmt->execute();
$stmt->bind_result($AccomodationID, $PUPoint, $PUTime, $Entity_ID, $Comments);
$stmt->store_result();

【问题讨论】:

    标签: php mysql mysqli prepared-statement


    【解决方案1】:

    mysqli::prepare 返回 mysqli_stmt 对象。 execute() 是该对象上的方法,而不是原始 mysqli 对象上的方法。

    $conn=mysqli_connect($dbhost, $dbuser, $dbpass, $db) or die(mysqli_error($conn));
    
    $conn->prepare("SELECT AccomodationID, PUPoint, PUTime, Entity_ID, Comments FROM ACCOMMODATION ORDER BY PUPoint ASC");
    $stmt = $conn->execute();
    $stmt->execute();
    $stmt->bind_result($AccomodationID, $PUPoint, $PUTime, $Entity_ID, $Comments);
    $stmt->store_result();
    

    【讨论】:

    • 我将展示如何更正代码。感谢您的解释。正是我需要的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    相关资源
    最近更新 更多