php准备语句失败。
我猜我遗漏了什么,但我似乎无法让这句话起作用。当我把它加载到页面中时,我看到了死亡的白色屏幕 这就是我想要做的php准备语句失败。,php,mysql,prepared-statement,Php,Mysql,Prepared Statement,我猜我遗漏了什么,但我似乎无法让这句话起作用。当我把它加载到页面中时,我看到了死亡的白色屏幕 这就是我想要做的 $statement = $db-> prepare("INSERT INTO `simplyaccomplished`.`blog_comment` (`ID`, `comment`, `date`, `ip_address`, `valid`, `name`, `blogcomment_ID`) VALUES (NULL, ?, NOW(), ?, 0, ?
$statement = $db-> prepare("INSERT INTO `simplyaccomplished`.`blog_comment` (`ID`, `comment`, `date`, `ip_address`, `valid`, `name`, `blogcomment_ID`) VALUES (NULL, ?, NOW(), ?, 0, ?, ? );");
$statement -> bind_param("sssi",$comment, $ipaddress, $name , $comment_id);
$statement -> execute($statement);
$statement -> close();
奇怪的是它运行得很好
$query = ("INSERT INTO `simplyaccomplished`.`blog_comment` (`ID`, `comment`, `date`, `ip_address`, `valid`, `name`, `blogcomment_ID`) VALUES (NULL,'$comment' , NOW(), '$ipaddress', '0', '$name', '$comment_id');");
$result =$db->query($query);
如果有人能告诉我哪里出了问题,我将不胜感激 你要找的PDO方法名为
bindParam
,而不是bind_-param
:)你要找的PDO方法名为bindParam
,而不是bind_-param
:)试试mysqli
方法
$statement = $db-> prepare("INSERT INTO `simplyaccomplished`.`blog_comment` (`ID`,
`comment`, `date`, `ip_address`, `valid`, `name`, `blogcomment_ID`)
VALUES (?, ?, ?, ?,?, ?, ?)");
$statement -> bind_param("ssssisi",
null,$comment,NOW(),$ipaddress, 0,$name , $comment_id);
查看并。尝试
mysqli
方法
$statement = $db-> prepare("INSERT INTO `simplyaccomplished`.`blog_comment` (`ID`,
`comment`, `date`, `ip_address`, `valid`, `name`, `blogcomment_ID`)
VALUES (?, ?, ?, ?,?, ?, ?)");
$statement -> bind_param("ssssisi",
null,$comment,NOW(),$ipaddress, 0,$name , $comment_id);
查看和。如果您看到死亡的白色屏幕,请尝试设置
错误报告(E\u ALL)代码>和ini_集('display_errors','1')代码>。打得好。看起来它是对未定义的方法PDOStatement::bind_param()的调用这不是PDO方法-PDO方法是bindparan()。您正在使用mysqli对象的bind_param方法和$statement->execute($statement)代码>看起来也是多余的错误。在PDO中,您可以跳过->bindParam()
,只需将参数作为数组传递给->execute([$comment,$ip,$name])代码>因为类型是自动检测的。如果您得到一个白色的死亡屏幕,请尝试设置错误报告(E\u ALL)代码>和ini_集('display_errors','1')代码>。打得好。看起来它是对未定义的方法PDOStatement::bind_param()的调用这不是PDO方法-PDO方法是bindparan()。您正在使用mysqli对象的bind_param方法和$statement->execute($statement)代码>看起来也是多余的错误。在PDO中,您可以跳过->bindParam()
,只需将参数作为数组传递给->execute([$comment,$ip,$name])代码>因为类型是自动检测的。由于OP的错误消息引用了PDO语句,我猜他没有使用MySQLi…但也许你建议他切换?@Matchu-是可能是PDO语句的bindParam调用不正确。我知道了$语句=$db->prepare(“插入SimplyAccompled
,ID
,comment
,date
,ip地址
,有效
,名称
,blogcomment\u ID
)值(NULL,,,NOW(),?,0,,;)$语句->bindvalue(1$comment)$语句->bindvalue(2,$ipaddress)$语句->bindvalue(3,$name)$语句->bindvalue(4,$comment\u id)$语句->执行()$语句->closeCursor();由于OP的错误消息引用了PDO语句,我猜他没有使用MySQLi…但也许你建议他切换?@Matchu-是的,可能是PDO语句的bindParam调用不正确。我知道了$语句=$db->prepare(“插入SimplyAccompled
,ID
,comment
,date
,ip地址
,有效
,名称
,blogcomment\u ID
)值(NULL,,,NOW(),?,0,,;)$语句->bindvalue(1$comment)$语句->bindvalue(2,$ipaddress)$语句->bindvalue(3,$name)$语句->bindvalue(4,$comment\u id)$语句->执行()$语句->closeCursor();