2012-07-23 3 views
0

저는 초보자 용 PHP 프로그래머입니다. 나는이 actionfrm.php을 가지고 있는데,이 메시지를 받으면 다음 메시지를받습니다.PHP 업데이트 코드가 데이터베이스에 쓰여지지 않습니다.

UPDATE personal 
    SET membername='test this', 
     sponsorid='102', 
     dateofjoining='2012-07-23', 
     address='13432 main', 
     city='pomona', 
     state='CA', 
     country='USA', 
     mobileno='8187321592', 
     countrycode='1', 
     dateofbirth='1988/05/03', 
     emailid='[email protected]' 
WHERE membername='test this' 

update query succeeded 

그러나 데이터베이스에 쓰는 것은 아닙니다. 나는이 코드를 phpmyadmin에 넣고 msg : 0 행에 영향을 미쳤다. 난 정말이와 두통을 데 ...이 수정 필요,

<?php include('dbconnect.php'); ?> 
<?php 
$membername=$_POST['membername']; 
if(isset($_POST['username']) and $_POST['username']!=""){ 
$sponsorid=$_SESSION['memberid_for_sp']; 
}else{ 
$sponsorid=0; 
} 
$dateofjoining=date("Y-m-d");; 
$address=$_POST['address']; 
$city=$_POST['city']; 
$state=$_POST['state']; 
$country=$_POST['country']; 
$mobileno=$_POST['mobileno']; 
$countrycode=$_POST['countrycode']; 
$dateofbirth=$_POST['dateofbirth']; 
$emailid=$_POST['emailid']; 
$myid=$_SESSION['memberid']; 

$query = "UPDATE personal SET membername='$membername', 
sponsorid='$sponsorid', 
dateofjoining='$dateofjoining', 
address='$address', 
city='$city', 
state='$state', 
country='$country', 
mobileno='$mobileno', 
countrycode='$countrycode', 
dateofbirth='$dateofbirth', emailid='$emailid' WHERE membername='$membername'"; 

echo $query; 
$checkresult = mysql_query($query); 
if ($checkresult) echo 'update query succeeded'; 
else echo 'update query failed'; 

mysql_close(); 

//return $frmdetail.php; 
?> 

이 도와주세요 : 여기

는 코드입니다.

+5

스택 오버플로에 오신 것을 환영합니다! 새로운 코드에 mysql_ * 함수를 사용하지 마십시오. 더 이상 유지 관리되지 않으며 커뮤니티에서 [지원 중단 프로세스] (http://goo.gl/KJveJ)를 시작했습니다. [** 빨간색 상자 **] (http://goo.gl/GPmFd)를 참조하십시오. 대신 [prepared statements] (http://goo.gl/vn8zQ)에 대해 알아야하고 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http://php.net/)를 사용해야합니다. mysqli). 결정할 수없는 경우 [이 기사] (http://goo.gl/3gqF9)를 선택하면 도움이됩니다. 당신이 배우기를 원한다면, 여기 [좋은 PDO 튜토리얼] (http://goo.gl/vFWnC)입니다. – ManseUK

+2

실제로 그 이름을 가진 회원이 있는지 확인 했습니까? 'where membername = '$ membername''? – Peon

+2

membername = 'test this'인 기존 행이 있습니까? 아무 것도 없으면, MySQL이 업데이트 할 행이 없습니다. – uzyn

답변

2

구성원 이름을 새 값 UPDATE personal SET membername='$membername'으로 설정 한 다음 WHERE 조건에서 새 값을 사용합니다. 물론 새로운 값이 테이블에 없으므로 0 행을 반환합니다.

WHERE 절 (예 : id)에서 다른 필드를 사용하여 멤버 이름을 업데이트해야합니다.

1

새로운 값은 테이블에 존재하지 않는,하지만 당신은 업데이 트를 실행, 그래서 당신은이 MSG를 가지고 : 0 행이 영향을

당신이 사용하는 대신 갱신의 대체해야합니다.

membername이 없으면 mysql이 insert를 호출합니다. 그렇지 않으면 mysql이 update를 호출합니다.

관련 문제