Php更新表

Php更新表,php,Php,我一直收到他的错误信息 注意:您的SQL语法中有一个错误;检查与MySQL服务器版本对应的手册,以了解第688行C:\xampp\htdocs\conference\update.php中第1行中“1”附近使用的正确语法 您正在双重执行查询: $up = mysql_query("UPDATE tblregistration SET firstname='$firstname' ,lastname='$lastname',Home_Address='$Haddress',Church_Name=

我一直收到他的错误信息

注意:您的SQL语法中有一个错误;检查与MySQL服务器版本对应的手册,以了解第688行C:\xampp\htdocs\conference\update.php中第1行中“1”附近使用的正确语法


您正在双重执行查询:

$up = mysql_query("UPDATE tblregistration SET firstname='$firstname' ,lastname='$lastname',Home_Address='$Haddress',Church_Name='$Churchname',Church_Address='$CAddress',Zone='$zones',District='$dis',Dob='$Dobs',Age='$age',Gsm='$Telephone',
Sex='$sexs',Email='$Emails',Health_Challenges='$HealthIssue',Pastor='$PastorNm',Pastor_Mobile='$PastorMb',Councellor_Name='$Councellornm',Councellor_Mobile='$Councellornum',Next_of_kin_name='$noks',Next_of_kin_mobile='$nokmobiles',Parent_name='$lastname ',
Candidate_sig='$firstname',Head_councellor_sig='$Councellornm',category='$category',Amount='$amt',TellerNumber='$TellNumber',dat='$dates',PayDate='$Paydate',BankName='$Bank',yearr='$yearr' WHERE reg_id='$f'");

$res = mysql_query($up) or trigger_error(mysql_error()." in ".$up);
试一试

反而

错误的具体原因:第二个mysql\u查询调用使用第一个mysql\u查询调用的结果句柄作为SQL字符串。查询调用需要一个字符串,因此它接受该语句句柄并将其视为字符串。但是,字符串化语句句柄不会提供原始sql字符串。句柄只是指向mysql_*代码复合体中某个地方的结构的内部指针,1就是从这里来的。对于PHP来说,它看起来就像是在做

$sql = "UPDATE ...";
$res = mysql_query($sql) or die(mysql_error());

在插入变量后,查询是什么样子的?可能是您试图插入的某些字符串包含引号,但它们没有正确转义。很高兴您的更新没有涉及引号!您可以先删除空格Parent_name='$lastname',但我怀疑这样做是否可行。我的印象是你想进去鲍勃的妹妹说:嘿,鲍勃,今天的天气预报是什么?鲍勃说今晚的天气预报会很暗使用带斜杠的mysql\u real\u escape\u string这是一个很好的建议,但您可能仍然会收到相同的错误消息。切换到这种运行查询的方式后,使用echo$sql;查看如何将变量添加到查询中。导致此问题的不是错误转义的字符串,就是空的非字符串值。@vic3685:错误。如果第一个查询失败,那么它将是一个布尔值FALSE,即“0”。不是“1”。该查询仍然容易受到SQL注入攻击,但在这种特定情况下,它实际上工作正常。这是有道理的。天气会不一样的。”昨天的另一个问题也是如此;但显然不是在这里。解释得很好。
$sql = "UPDATE ...";
$res = mysql_query($sql) or die(mysql_error());
$result = mysql_query('1');