간단한 사용자 등록 페이지를 작성하고 간단한 DBCONNECTOR 클래스를 사용하려고합니다. 데이터베이스에 사용자를 보내려 할 때 mysql_query() 오류가 발생합니다.이 PHP 코드와 클래스는 다음과 같습니다. 내가 문제를 db 클래스에 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 페이지입니다 : 나는 t을하려고하면
<?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()를 : \ XAMPP \ htdocs를 \ uzu \ UConfig \ UDbconnector.php 라인 : 공급 인수는 C에 유효한 MySQL의 링크 자원 아닙니다 18
경고 : mysql_close() : 공급 인수는 C에 유효한 MySQL의 링크 자원되지 않습니다 : \ XAMPP \ htdocs를 \ \ UConfig \ UDbconnector.php uzu 라인 (25)
당신의 등록에 성공입니다!
경고 : C : \ xampp \ htdocs \ uzu \ register.php의 이미 보낸 헤더 정보 (C : \ xampp \ htdocs \ uzu \ UConfig \ UDbconnector.php : 18에서 시작된 출력)를 수정할 수 없습니다.
정확히 어디에서 '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