0

私は初心者の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 に入れ、このメッセージを取得しました: 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;
?>

助けてください、私は本当にこれを修正する必要があります...私はこれで頭が痛いです.

4

2 に答える 2

2

membername を新しい値に設定し、UPDATE personal SET membername='$membername'その新しい値を WHERE 条件で使用しています。もちろん、新しい値がテーブルに存在しないため、0 行が返されます。

メンバー名も更新するには、WHERE 句で別のフィールド (id など) を使用する必要があります。

于 2012-07-23T09:41:55.343 に答える
1

新しい値はテーブルに存在しませんが、更新を実行すると、次のメッセージが表示されます: 影響を受ける行は 0 行です。

update の代わりに replace を使用する必要があります。

membername が存在しない場合、mysql は insert を呼び出し、そうでない場合、mysql は update を呼び出します。

于 2012-07-23T09:49:01.683 に答える