【发布时间】:2014-07-14 02:54:01
【问题描述】:
脚本是登录系统的一部分,这部分是收集有关用户的所有信息。
错误代码:
致命错误:在第 28 行的 /home/s010485/domains/jcsl.nl/public_html/medewerkers/includes/main.php 中的非对象上调用成员函数 bind_param()
致命错误:未捕获的异常 'mysqli_sql_exception' 带有消息“您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在 '? 附近使用的正确语法。和 mw_gegevens_pass=? AND mw_gegevens_p' 在第 6 行' 在/home/s010485/domains/jcsl.nl/public_html/medewerkers/includes/main.php:27
堆栈跟踪:#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} 在第 27 行的 /home/s010485/domains/jcsl.nl/public_html/medewerkers/includes/main.php 中抛出
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;
}
}
【问题讨论】:
-
在开发过程中将错误报告添加到文件顶部
error_reporting(E_ALL); ini_set('display_errors', 1); mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);(如果您尚未这样做)。 -
我的页面顶部有这个:ini_set('display_errors', 'On'); error_reporting(E_ALL);, 但我会使用你的。
-
此错误消息
mysqli->query('?????????SELECT...') #1与您发布的代码无关或可能没有任何关系。我建议您使用双引号而不是单引号来表示其中的内容。即:mysqli->query("SELECT...")- 您需要向我们展示更多代码。 -
在新的错误消息中,他在脚本的其他部分给出了错误。见起始帖。
-
mysqli->query甚至不在您为代码添加/编辑的内容中。
标签: php mysqli sqlbindparameter