【发布时间】:2017-04-04 15:49:01
【问题描述】:
我想为我的程序制作一个登录脚本,但它不起作用。错误在bind_param 上。
您能否解释一下为什么它不起作用并教我如何正确操作?
代码:
<?php
$username = $_GET['username'];
$key = $_GET['key'];
$hwid = $_GET['hwid'];
$istKorrekt = istKorrekterSchluessel($username, $key, $hwid);
if($istKorrekt) {
echo 'true';
} else {
echo 'false';
}
mysqlTrennen();
function mysqlVerbinden() {
global $mysqlVerbindung;
$mysqlHost = "localhost";
$mysqlBenutzer = "ts3botauth";
$mysqlPasswort = "nope";
$mysqlDatenbank = "ts3botauth";
$mysqlTabelle = "ts3botauth";
$mysqlVerbindung = new mysqli($mysqlHost, $mysqlBenutzer, $mysqlPasswort, $mysqlDatenbank);
if($mysqlVerbindung->connect_errno)
return false;
return true;
}
function mysqlTrennen() {
global $mysqlVerbindung;
$mysqlVerbindung->close();
}
function istKorrekterSchluessel($username, $key , $hwid) {
global $mysqlVerbindung;
$mysqlTabelle = "ts3botauth";
$stmtPruefung = $mysqlVerbindung->prepare("SELECT EXISTS(SELECT * FROM " . $mysqlTabelle . " WHERE `Key`=? AND `Username`=? AND `HWID`=?) AS schluesselKorrekt");
if(!$stmtPruefung) {
return false;}
$stmtPruefung->bind_param("s",$username);
$stmtPruefung->bind_param("s", $key);
$stmtPruefung->bind_param("s", $hwid);
$stmtPruefung->execute();
$stmtPruefung->bind_result($schluesselKorrekt);
$stmtPruefung->fetch();
return ($schluesselKorrekt == 1);
}
?>
【问题讨论】:
-
mysql绑定是一行:
$stmt->bind_param('dataTyes', $variables,,,); -
您不断覆盖绑定,因此只有最后一个生效,即
$stmtPruefung->bind_param("s", $hwid);。返回并RTM php.net/manual/en/mysqli-stmt.bind-param.php -
@Fred-ii- 我不知道。错误来自 bind_param,而不是来自执行。我认为它只是在第一个上失败了。
-
他只绑定了一个参数
标签: php