我是一名新手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;
?>
请帮助,我真的需要这个纠正......我对此感到头痛。
答案 0 :(得分:2)
您将成员名称设置为新值UPDATE personal SET membername='$membername'
,然后在WHERE条件中使用该新值。当然,它会返回0行,因为表中不存在新值。
您必须在WHERE子句中使用其他字段(例如id)来更新成员名。
答案 1 :(得分:1)
表中不存在新值,但是执行update,所以你得到了这个msg:0行受影响,
你应该使用替换而不是更新。
当membername不存在时,mysql将调用insert,否则mysql将调用update。