我試圖寫簡單的用戶註冊頁面並使用簡單的DBCONNECTOR類與下面相同,當我嘗試將用戶發送到數據庫我得到mysql_query()error.this是我的PHP代碼和類請幫我解決問題 mysql_query分貝類的錯誤
,這是我dbconnector類:
<?php
require_once 'UConfig.inf.php';
class udbcl extends USettings{
var $link;
var $myquery;
function UDbconnect(){
$DBinfo=USettings::GSettings();
$DBhost=$DBinfo['UDbhost'];
$DBname=$DBinfo['UDbname'];
$DBusername=$DBinfo['UDbusername'];
$DBpassword=$DBinfo['UDbpassword'];
$this->link=mysql_connect($DBhost,$DBusername,$DBpassword);
mysql_select_db($DBname);
}
function UQuery($myquery){
$this->link=$myquery;
return mysql_query($myquery, $this->link);
}
function UFetch($result){
return mysql_fetch_array($result);
}
function UDbclose(){
mysql_close($this->link);
}
}
?>
,這是我register.php頁:
<?php
require_once ('UConfig/UDbconnector.php');
$myinfoadd = new udbcl();
if (isset($_POST['username'])) {
$myq = "INSERT INTO userinfo(username,password,email,telphon) VALUES('$_POST[username]','$_POST[password]','$_POST[email]','$_POST[telnumber]')";
$myinfoadd->UQuery($myq);
$myinfoadd->UDbclose();
echo "You registration is Success!";
sleep(3);
header('Location:index.php');
} else {
print <<<hldoc
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>U S R R</title></head><body><form method="POST" action="register.php" ><b>User Name:</b> <input type="text" name="username" /><br/><b>User Password:</b><input type="password" name="password" /><br/><b>User Email:</b><input type="email" name="email" /><br/><b>User Tel:</b><input type="telnumber" name="telnumber" /><br/><input type ="submit" name="submit" value="Register"/></form></body></html>
hldoc;
}
?>
當我嘗試ŧ O寄存器用戶我得到一個錯誤下同:
警告:請求mysql_query():提供的參數是不是在C一個有效的MySQL鏈路資源:\ XAMPP \ htdocs中\ UZU \ UConfig \ UDbconnector.php上線18
警告:mysql_close():提供的參數是不是在C一個有效的MySQL-Link的資源:\ XAMPP \ htdocs中\ UZU \ UConfig \ UDbconnector.php上線25
您註冊成功!
警告:無法修改頭文件信息 - 已在C:\ xampp \ htdocs \ uzu \ register.php中發送的頭文件(輸出在C:\ xampp \ htdocs \ uzu \ UConfig \ UDbconnector.php:18中開始)線10
那麼你到底在哪裏叫'UDbconnect'?你爲什麼要將類變量'$ this-> link'(一個資源)重置爲'$ myquery'(一個字符串),從而在每次調用'UQuery'時覆蓋它的原始值? – mellamokb
它可能無助於回答你的問題,但你應該停止使用'mysql_ *'函數。他們正在被棄用。請使用[PDO](http://php.net/manual/en/book.pdo.php)(自PHP 5.1起支持)或[mysqli](http://php.net/manual/en/book)。 mysqli.php)(自PHP 4.1起支持)。如果您不確定要使用哪一個,請閱讀本文(http://www.deprecatedphp.com/mysql_/)。 – Matt
您正在爲傳遞的查詢設置'$ this-> link',這是一個字符串。 – Matt