0
当我在另一个文件中调用函数时,执行mysql命令时出现问题。如果我在同一个文件中的代码,它工作正常。代码如下:将mysqli连接传递给PHP函数 - 不同步
身份验证:
{
$conn = new mysqli($dbserver, "dbuser", "pass", $dbname);
$sql = 'SELECT userId, salt, pwd, isAdmin FROM users where username = ?';
$stmt = $conn->stmt_init();
$stmt->prepare($sql);
$stmt->bind_param('s', $username);
$stmt->bind_result($userId, $salt, $storedPwd, $isAdmin);
$stmt->execute();
$stmt->fetch();
}
现在,如果我调用一个函数,立即取出后,失败的bind_param线。我这样称呼它:
updateUserActivity ($conn, $tpcLang, 'LI', $userId);
这个函数的开头是:
function updateUserActivity ($conn, $lang, $activityType, $userId)
{
// check that activity is valid
$sql = 'SELECT activityType
FROM activityType
WHERE activityType = ?';
$stmt = $conn->stmt_init();
$stmt->prepare($sql);
$stmt->bind_param('s', $activityType);
$stmt->bind_result($activityTypeInDB);
$stmt->execute();
$stmt->fetch();
if ($activityType == $activityTypeInDB){
$success=1;
} else {
$success=0;
$msg = $lang->get('UPDATE_USER_INVALID_ACTIVITY_ERROR_MSG') . " " . $activityType . " (" . $stmt->errno . "): " . $stmt->error;
error_log ($msg);
}
// continue on to add a row in the userActivity table
}
我上bind_param的错误是:无效的对象或资源mysqli_stmt,以及DB错误是:命令出同步;你现在不能运行这个命令。
任何建议将不胜感激。
的时间在我早期编码日子,我会利用已经设置资源陷入了量! – Lock 2012-04-13 01:22:55
谢谢。我在里面放了一个stmt-> close(),它就可以工作。我现在正在确保所有货币都关闭。 – jpporterVA 2012-04-13 01:44:42