我有这段代码:
$conn = new mysqli($servername, $username, $password, $dbname);
$jsonvprencode = json_encode($jsonvpr);
$stmt = $conn->prepare("UPDATE `wp_posts` SET `post_content` = :val WHERE `ID` = $idvpr");
$stmt->bind_param(":val", $jsonvprencode);
$stmt->execute();
尝试执行时会返回Fatal error: Call to a member function bind_param() on a non-object in /var/www/html/crawlnew.php on line 432
我无法理解这里发生了什么-_-
答案 0 :(得分:1)
使用PreparedStatements的MySQLi
$stmt = $conn->prepare("UPDATE `wp_posts` SET `post_content` = ? WHERE `ID` = ?");
$stmt->bind_param("si", $jsonvprencode,$idvpr);
带有准备陈述的PDO
$stmt = $conn->prepare("UPDATE `wp_posts` SET `post_content` = :jsonvprencode WHERE `ID` = :idvpr");
$stmt->bindParam(':jsonvprencode', $jsonvprencode);
$stmt->bindParam(':idvpr', $idvpr);
答案 1 :(得分:0)
您必须打开PDO连接
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
然后使用此对象
答案 2 :(得分:0)
我认为你的陈述中有错误。
printf("Errormessage: %s\n", $conn->error);
如果有错误,请尝试回显错误。如果你的陈述中有错误,你就没有得到合适的对象。