我用PHP制作了一个登录屏幕,但变量"count"为空,而用户名和密码在oracle数据库中是正确的。请帮忙。
我的php代码:(Control.php)
<?php $conn = oci_connect('TEST', 'TEST', 'CODE');
$username1 = $_GET['log']; // textbox name
$password1 = $_GET['pas']; // textbox name
$array = oci_parse($conn, "SELECT MDW_ACHTERNAAM, MDW_VOORNAAM FROM
MDW_VW WHERE MDW_ACHTERNAAM = '" . $username1 . "' AND MDW_VOORNAAM = '" .$password1 ."'");
$query = oci_execute($array);
$count = oci_num_rows($query);
if($count > 0){ // Here is count 0, while the username and password are correct.
header("Opdracht.php");
}
else {
echo "Wrong username.";
}
?>
我的HTML代码表单页面:
<form method="get" action="Control.php">
Gebruikersnaam: <br /> <input id="Text1" type="text" name="log" maxlength="8" required /> <br />
Wachtwoord: <br /> <input id="Password1" type="password" name="pas" required /> <br /> <br />
<input id="Submit1" type="submit" value="Inloggen" />
</form>
oci_num_rows
上的文档指出,您需要首先获取结果,而不仅仅是执行以下语句:
此函数不返回所选的行数!对于SELECT语句,此函数将返回使用oci_fetch()函数提取到缓冲区的行数。*
(http://php.net/manual/en/function.oci-num-rows.php)
通常,此函数用于获取受update
或delete
影响的行数。
在您的示例中,由于无论如何都必须获取结果,您还可以考虑评估count(*)
或其他内容。。。