我已经在php中编写了大约1个半月的代码。要查询数据库,我通常会将$mysqli
传递给我调用的函数。我在那里调用了db.php。代码有时会工作,有时无理由失败。我写了一个页面并在那里包含了一些功能。在我开发的过程中,它工作了数千次。现在它停止传递$mysqli
对象并且函数中的代码开始抱怨并且没有理由。我什么都没改变。
它发生在很多场合,当我通过$mysqli
时,它不确定是否会通过。这有什么问题?f
function getsubjectname($mysqli, $subjectid)
{
$query="select SubjectName from user_subject where SubjectId=?";
$stmt=$mysqli->stmt_init();
$stmt->prepare($query);
$stmt->bind_param('i', $subjectid);
$stmt->execute();
$stmt->bind_result($SubjectName);
$stmt->fetch();
return $SubjectName;
}
在上面的代码中,它直到现在才收到$ mysqli对象。但现在它无法看到它。
当我在函数本身中包含$mysqli=new MySQLi('localhost','root','','spiralblog');
时,它就可以工作。
修改
<div style='font-size:24px;'>
<?php if(!isset($_GET['subjectid']))
{
$row=getpinnedsubject($mysqli, $userid); echo $row['SubjectName'];
} else {
echo getsubjectname($mysqli, $_GET['subjectid']);
}?>
</div>
此代码位于index.php上,调用函数位于另一页面中。致力于功能
答案 0 :(得分:0)
实际上是我在主页中包含的标题页,我在那里进行了查询,之后没有关闭stmt
对象。这导致了意想不到的行为。所以应该始终关闭stmt
。 :)