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