我的PHP更新代码没有写入数据库

时间:2012-07-23 09:31:17

标签: php mysql

我是一名新手php程序员。我有这个actionfrm.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='tlhkapil@gmail.com' 
 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;
?>

请帮助,我真的需要这个纠正......我对此感到头痛。

2 个答案:

答案 0 :(得分:2)

您将成员名称设置为新值UPDATE personal SET membername='$membername',然后在WHERE条件中使用该新值。当然,它会返回0行,因为表中不存在新值。

您必须在WHERE子句中使用其他字段(例如id)来更新成员名。

答案 1 :(得分:1)

表中不存在新值,但是执行update,所以你得到了这个msg:0行受影响,

你应该使用替换而不是更新。

当membername不存在时,mysql将调用insert,否则mysql将调用update。