我遇到了bind_param函数的问题.我将在下面发布所有信息.
错误:
Fatal error: Call to a member function bind_param() on a non-object in /home4/lunar/public_html/casino/blogpost.php on line 88
MySQL错误:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':user, :title, :message, :image, :category, NOW())' at line 1
查询:
$user = $_COOKIE['user']; $title = $_POST['title']; $message = $_POST['message']; $image = $_POST['image']; $category = $_POST['category']; $stmt = $mysqli->prepare("INSERT INTO `lunar_casino`.`posts` (`id`, `by`, `title`, `message`, `image`, `category`, `date`) VALUES(NULL, :user, :title, :message, :image, :category, NOW())"); echo $mysqli->error; $stmt->bind_param(":user", $user); $stmt->bind_param(":title", $title); $stmt->bind_param(":message", $message); $stmt->bind_param(":image", $image); $stmt->bind_param(":category", $category); $stmt->execute(); if(!$stmt){ echo "There has been an error with our database! Please contact the website administrator!
"; echo $mysqli->error; } else { echo "You have successfully added a blog post!
"; }
有什么想法为什么会这样?
正如Rocket Hazmat所提到的,你只能使用问号作为绑定参数占位符.你应该做类似的事情:
$stmt = $mysqli->prepare("INSERT INTO `lunar_casino`.`posts` (`id`, `by`, `title`, `message`, `image`, `category`, `date`) VALUES(NULL, ?, ?, ?, ?, ?, NOW())"); $stmt->bind_param("sssss", $user, $title, $message, $image, $category);
更多细节:http: //www.php.net/manual/en/mysqli-stmt.bind-param.php