-1

该脚本是登录系统的一部分,这部分是收集有关用户的所有信息。

错误代码:

致命错误:在第 28 行的 /home/s010485/domains/jcsl.nl/public_html/medewerkers/includes/main.php 中的非对象上调用成员函数 bind_param()

致命错误:未捕获的异常 'mysqli_sql_exception' 带有消息“您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 '? 附近使用的正确语法。和 mw_gegevens_pass=? 和 mw_gegevens_p' 在 /home/s010485/domains/jcsl.nl/public_html/medewerkers/includes/main.php:27 的第 6 行

堆栈跟踪:#0 /home/s010485/domains/jcsl.nl/public_html/medewerkers/includes/main.php(27): mysqli->query('?????????SELECT...') #1 /home/s010485/domains/jcsl.nl/public_html/medewerkers/index.php(13): include_once('/home/s010485/d...') #2 {main} 抛出 /home/s010485/ domain/jcsl.nl/public_html/medewerkers/includes/main.php 在第 27 行

if(isset($_POST['login']))
{
$userpassword = md5($_POST['mw_pass']);

    $mw_gegevens_qry = $connection->query("
                                SELECT
                                        * 
                                FROM 
                                        mw_gegevens
                                WHERE   
                                        mw_gegevens_persnr=?
                                AND     
                                        mw_gegevens_pass=?
                                AND
                                        mw_gegevens_pass!='' 
                                ");
            $mw_gegevens_qry->bind_param('is', $_POST['mw_user'],$userpassword);   
            $mw_gegevens_qry->execute();
            $mw_gegevens_qry->close();
    ($mwgegevens = $mw_gegevens_qry->fetch_assoc());
    if($mw_gegevens_qry->num_rows == 0){
    //wrong inlog
        $error['login'] = "FOUT: Uw combinatie van je personeelsnummer en wachtwoord kon niet worden gevonden. Mogelijk heb je een typefout gemaakt.";
    }
    else
    { 
        set_inlog($mwgegevens);
        if(isset($_GET['pagina']))
        {
        header("location: ?pagina=".$_GET['pagina']);
        }
        else
        {
        header("location: index.php?pagina=home");
        }
        exit;
    }
}
4

2 回答 2

2

使用前需要准备好语句bind_param

$stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);

编辑:代码现在看起来不错(虽然我不使用 mysqli,所以并不完全熟悉它)。听起来很愚蠢,您确定$connection并且$qry都成功了吗?似乎由于连接和准备步骤不成功,准备可能会失败?

于 2014-05-25T02:12:13.340 回答
0

正如fluffeh指出的那样,您需要在绑定之前准备语句......

$qry = $connection->prepare("UPDATE mw_gegevens SET mw_gegevens_ckey =   ?, mw_gegevens_logintime   =   ? WHERE  mw_gegevens_id =   ?");
echo $connection->error;//displays error
$qry->bind_param('sii', $key,$onlinetijd,$list['mw_gegevens_id']);   
$qry->execute();

$result_set = $qry->get_result();//grab the results

if($result_set->num_rows < 1){

echo "Wrong login";

}

else{
//do something

}

如果你想展示你所做的事情

 while($row = $result_set->fetch_assoc()){
 //echo row 
 }
于 2014-05-25T02:27:49.097 回答