【发布时间】:2015-08-13 07:13:11
【问题描述】:
我有以下php函数,检查了无数次。
我查看了大约 30 个关于 HY903 错误代码的不同问题。但是,它们似乎都不适用。
我检查了列数,占位符的数量,我检查了拼写是否一致。我什至在 if(!is_null){} 中包含了可能为空的值,但似乎没有任何东西可以改变这个错误。我必须遗漏一些小东西,但我一辈子都找不到它是什么。
function add_page($title, $linkStub, $content,$gitTitle,$buttonLabel,$buttonLink,$buttonText,$buttonTarget)
{
$sql = "INSERT INTO `pages`(
`pageId`,
`title`,
`linkStub`,
`content`,
`gitTitle`,
`buttonLabel`,
`buttonLink`,
`buttonText`,
`buttonTarget`
)
VALUES (
NULL ,
:title ,
:linkStub ,
:content ,
:gitTitle ,
:buttonLabel ,
:buttonLink,
:buttonText,
:buttonTarget
)";
$stmt = $this->db->prepare($sql);
$stmt->bindParam(':title', $title, PDO::PARAM_STR, 100);
$stmt->bindParam(':linkStub', $linkStub, PDO::PARAM_STR, 150);
$stmt->bindParam(':content', $content, PDO::PARAM_STR);
if(!is_null($gitTitle))
{
$stmt->bindParam(':gitTitle', $gitTitle, PDO::PARAM_STR, 150);
}
if(!is_null($buttonLink))
{
$stmt->bindParam(':buttonLabel', $buttonLabel, PDO::PARAM_STR, 150);
$stmt->bindParam(':buttonLink', $buttonLink, PDO::PARAM_STR, 150);
$stmt->bindParam(':buttonText', $buttonText, PDO::PARAM_STR, 100);
$stmt->bindParam(':buttonTarget', $buttonTarget, PDO::PARAM_INT, 2);
}
$bool = $stmt->execute();
print_pre($stmt->errorInfo()); //Uncomment for error reporting
return $bool;
}
编辑:
这个问题与您标记这些问题的问题不重复,因为绑定数量不正确,这是处理 Robbie Averill 指出的 NULL 值。
【问题讨论】:
-
所以,如果 $gitTitle 或 $buttonlink 为空,绑定的参数将会减少......
-
是的,Robbie Averill 指出了同样的事情。谢谢