[英]PDO prepare() error Php / Mysql
的PHP
session_start();
$username = $_POST['regduser'];
$userpass = md5($_POST['regdpass']);
$sql = $sql->prepare("SELECT * from Students WHERE regduser='$username' and regdpass='$userpass'");
$sql->bindParam(':username', $username);
$sql->bindParam(':userpass', $userpass);
$stmnt->execute();
$result = mysql_query($sql);
if (mysql_num_rows($result)!= 1) {
$error = "Login failed";
#include "loginform.php";
} else {
echo "<h1>exists</h1>";
#$_SESSION['regduser'] = "$username";
#$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
// any other data needed to navigate the site or
// to authenticate the user can be added here
#include "membersection.php";
}
?>
HTML:
<form action="inc/check_regUsr.php" method="post" id="userLogon">
<div class="field required">
Username: <input type="text" name="regduser" tabindex="1" /><br />
</div>
<div class="field required">
Password: <input type="password" name="regdpass" tabindex="2" /><br />
</div>
<input type="submit" name="submitUser" />
</form>
致命錯誤:在第9行的非對象上調用成員函數prepare(),該行是:
$sql = $sql->prepare("SELECT * from Students WHERE regduser='$username' and regdpass='$userpass'");
我在這里做錯了什么?
哦,從哪里開始...
$sql
在哪里建立數據庫連接? :placeholdername
,而不是$placeholdername
。 $sql
,破壞了數據庫連接(如果有的話)。 $stmnt
不存在 mysql_query
在那里做什么? 您有3個選項: mysql
, mysqli
或PDO
。 堅持下去,不要混搭。 $sql
根本不是對象。 它必須是一個對象,例如來自PDO的對象,例如$sql = new PDO(…)
。
此外,你不應該使用MD5哈希的密碼,請參閱安全散列和鹽的PHP密碼 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.