我遇到了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 "<font color='red'><b>There has been an error with our database! Please contact the website administrator!</b></font><br /><br />";
echo $mysqli->error;
} else {
echo "<font color='green'><b>You have successfully added a blog post!</b></font><br /><br />";
}
为什么会有这样的想法?
答案 0 :(得分:6)
正如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
答案 1 :(得分:0)
$ stmt-&gt; bind_param(“sssss”,$ user,$ title,$ message,$ image,$ category); 在第一个参数上,s = string,i =整数。您需要指定要添加到数据库的值的类型。如果要将5个字符串值添加到数据库中,则写入'sssss'如果要插入5个整数,则写入'iiiii'如果有一些整数值和一些字符串值,则可以相应调整。
//所以如果你的值都是字符串,那么这是正确的: $ stmt-&gt; bind_param(“sssss”,$ user,$ title,$ message,$ image,$ category);
//所以如果你的值都是整数,那么这是正确的: $ stmt-&gt; bind_param(“iiiii”,$ user,$ title,$ message,$ image,$ category);
//如果前2个是整数而其他3个字符串那么这是正确的: $ stmt-&gt; bind_param(“iisss”,$ user,$ title,$ message,$ image,$ category);
等等。