memoli
شنبه 26 اردیبهشت 1388, 21:26 عصر
<?php
$nam=$_POST['nam'];
$pas=$_POST['pas'];
$year=$_POST['year'];
$month=$_POST['month'];
$day=$_POST['day'];
$sex=$_POST['sex'];
$mar=$_POST['mar'];
$tel=$_POST['tel'];
$mob=$_POST['mob'];
$mail=$_POST['mail'];
$zip=$_POST['zip'];
$adrs=$_POST['adrs'];
$dt=($year=='0' || $month=='00' || $day=='00')? 'null' : ("'".$year.'-'.$month.'-'.$day."'");
$sx=($sex=='') ? 'null' : "'$sex'";
$mr=($mar=='') ? 'null' : "'$mar'";
$ad=($adrs=='') ? 'null' : "'$adrs'";
$zp=($zip=='') ? 'null' : "'$zip'";
$tl=($tel=='') ? 'null' : "'$tel'";
$mb=($mob=='') ? 'null' : "'$mob'";
$query2= "insert into member set id='$nam' , pas='$pas' , age=$dt , sex=$sx , married=$mr , membership='".date('Y-m-d')."' , email='$mail' , address=$ad , zipcode=$zp , phone=$tl , mobile=$mb , inventory=0";
echo "$query2<br>";
$db=mysql_connect('localhost','root','');
if(!$db)
{
echo " خطا: ارتباط با پایگاه داده برقرار نشد ";
exit();
}
if( !mysql_select_db("travel_agency",$db) )
{
echo " خطا: بانک مورد نظر انتخاب نشد ";
exit();
}
mysql_query("SET NAMES 'utf8'", $db);
//$query0="insert into member set id='yyyoo9osss' , pas='555555' , age=null , sex=null , married=null , membership='2009-05-16' , email='u@g' , address='Ù†' , zipcode=null , phone=null , mobile=null , inventory=0";
$result2=mysql_query($query2,$db);
if($result2)
{
echo "ok";
echo mysql_affected_rows();
}
else
{
echo "fail";
//mysql_affected_rows();
}
mysql_close($db);
?>
وقتی اجرا میشه پیغام میده "fail" یعنی باید عمل insert نکرده باشه ولی میرم می بینم تو جدول رکورد مرد نظر اضاف شده!! در هیچ حالتی پیغام مربوط به بلوک if را چاپ نمیکنه ولی همیشه هم insert میکنه! و در ضمن چک کردم mysql_affected_rows را برابر -1 میده در حالی که insert شده!
حالا اگه به query2 یه رشته ساده بذارم مثل :
$query0="insert into member set id='yyyoo9osss' , pas='555555' , age=null , sex=null , married=null , membership='2009-05-16' , email='u@g' , address='Ù†' , zipcode=null , phone=null , mobile=null , inventory=0";همه چیز درس میشه!!! عجب!! پس query اشکال داره!
$nam=$_POST['nam'];
$pas=$_POST['pas'];
$year=$_POST['year'];
$month=$_POST['month'];
$day=$_POST['day'];
$sex=$_POST['sex'];
$mar=$_POST['mar'];
$tel=$_POST['tel'];
$mob=$_POST['mob'];
$mail=$_POST['mail'];
$zip=$_POST['zip'];
$adrs=$_POST['adrs'];
$dt=($year=='0' || $month=='00' || $day=='00')? 'null' : ("'".$year.'-'.$month.'-'.$day."'");
$sx=($sex=='') ? 'null' : "'$sex'";
$mr=($mar=='') ? 'null' : "'$mar'";
$ad=($adrs=='') ? 'null' : "'$adrs'";
$zp=($zip=='') ? 'null' : "'$zip'";
$tl=($tel=='') ? 'null' : "'$tel'";
$mb=($mob=='') ? 'null' : "'$mob'";
$query2= "insert into member set id='$nam' , pas='$pas' , age=$dt , sex=$sx , married=$mr , membership='".date('Y-m-d')."' , email='$mail' , address=$ad , zipcode=$zp , phone=$tl , mobile=$mb , inventory=0";
echo "$query2<br>";
$db=mysql_connect('localhost','root','');
if(!$db)
{
echo " خطا: ارتباط با پایگاه داده برقرار نشد ";
exit();
}
if( !mysql_select_db("travel_agency",$db) )
{
echo " خطا: بانک مورد نظر انتخاب نشد ";
exit();
}
mysql_query("SET NAMES 'utf8'", $db);
//$query0="insert into member set id='yyyoo9osss' , pas='555555' , age=null , sex=null , married=null , membership='2009-05-16' , email='u@g' , address='Ù†' , zipcode=null , phone=null , mobile=null , inventory=0";
$result2=mysql_query($query2,$db);
if($result2)
{
echo "ok";
echo mysql_affected_rows();
}
else
{
echo "fail";
//mysql_affected_rows();
}
mysql_close($db);
?>
وقتی اجرا میشه پیغام میده "fail" یعنی باید عمل insert نکرده باشه ولی میرم می بینم تو جدول رکورد مرد نظر اضاف شده!! در هیچ حالتی پیغام مربوط به بلوک if را چاپ نمیکنه ولی همیشه هم insert میکنه! و در ضمن چک کردم mysql_affected_rows را برابر -1 میده در حالی که insert شده!
حالا اگه به query2 یه رشته ساده بذارم مثل :
$query0="insert into member set id='yyyoo9osss' , pas='555555' , age=null , sex=null , married=null , membership='2009-05-16' , email='u@g' , address='Ù†' , zipcode=null , phone=null , mobile=null , inventory=0";همه چیز درس میشه!!! عجب!! پس query اشکال داره!