-1

我有一个两步注册,一个包含重要数据,如电子邮件用户名和密码,第二个可选包含个人信息,如简历、眼睛颜色等。我有两个 exec 文件,第一个 ofc 写入数据在数据库的第一部分,留下了大约 30 列个人数据空白。第二个做另一行,但现在重要数据为空。我想附加或加入这两行,所以所有信息都在一行中。

这是第二个

 $qry = "UPDATE `performers` SET `Bemutatkozas` = '$bemuatkozas', `Feldob` = '$feldob', `Lehangol` = '$lehangol', `Szorzet` = '$szorzet', `Jatekszerek` = '$jatek', `Kukkolas` = '$kukkolas', `Flort` ='$flort', `Szeretek` = '$szeretek', `Utalok` = '$utalok', `Fantaziak` = '$fantaziak', `Titkosvagyak` = '$titkos_vagyak, `Suly` = '$suly', `Magassag` = '$magassag', `Szemszin` = '$szemszin', `Hajszin` = '$hajszin', `Hajhossz` = '$hajhossz', `Mellboseg` ='$mellboseg', `Orarend` = '$orarend', `Beallitottsag` = '$szexualis_beallitottsag', `Pozicio` = '$pozicio', `Dohanyzas` = '$cigi', `Testekszer` = '$pc', `Tetovalas` ='$tetko', `Szilikon` ='$szilikon', `Fetish1` = '$pisiszex', `Fetish2` = '$kakiszex', `Fetish3` = '$domina', `Testekszerhely` = '$pchely', `Tetovalashely` = '$tetkohely', `Csillagjegy` = '$csillagjegy', `Parral` = '$par', `Virag` = '$virag' WHERE `Username` ='" .  $_POST['username']. "'";
$result = @mysql_query($qry);


//Check whether the query was successful or not
if($result) {
    header("location: perf_register_success.php");
    exit();

我不确定 $_POST 是否在这里工作。我有表格,然后是那个表格的 exec,它有效,然后是这个表格,这就是那个的 exec。无论如何,我总是收到“查询失败”消息,它位于“if”的 else 语句中正在使用。我究竟做错了什么?谢谢!

4

2 回答 2

1

UPDATE 的正确语法如下:

UPDATE table SET columnA=valueA, columnB=valueB WHERE condition=value

这里的文档

因此,您的查询应如下所示:

$qry = "UPDATE performers SET Bemutatkozas = $bemuatkozas, Feldob = $feldob, Lehangol = $lehangol [...] WHERE Username ='" .  $_POST['username']. "'

您必须将 [...] 替换为您的所有值(这将需要一些时间),但希望您能得到模式。

除此之外,您应该在代码中改进/更改许多内容,但我只会指出jeroen在这个问题中的回答,因为他几乎涵盖了所有内容。

于 2012-07-13T01:07:22.767 回答
1

你想要UPDATE而不是INSERT你的第二个查询。

除此之外,您确实需要修复该 sql 注入错误,最好结合准备好的语句切换到 PDO 或 mysqli。这些mysql_*功能已弃用。

无论您采取何种解决方案,您都需要添加适当的错误处理,抑制错误是错误的,尤其是当您尝试修复问题但即使在生产站点中,错误也需要记录,而不是忽略。

于 2012-07-13T00:41:33.117 回答