附加2个Mysql行

时间:2012-07-13 00:27:54

标签: php mysql

我有一个两步注册,一个包含重要数据,如电子邮件用户名和密码,另一个包含个人信息,如生物,眼睛颜色等。我有2个exec文件,这些,第一个将数据写入数据库的第一部分,将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语句中'正在使用。我究竟做错了什么? 谢谢!

2 个答案:

答案 0 :(得分:1)

第二次查询需要UPDATE而不是INSERT

除此之外,你真的需要修复sql注入错误,最好是通过切换到PDO或mysqli与预准备语句一起使用。不推荐使用mysql_*函数。

无论你采取什么解决方案,都需要添加适当的错误处理,抑制错误是错误的,特别是当你尝试修复问题时,即使在生产站点中,也需要记录错误,而不是忽略错误。

答案 1 :(得分:1)

UPDATE的正确语法如下:

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

documentation here

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

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

你必须用你的所有价值取代[...](这需要一些时间),但希望你能得到这种模式。

除此之外,您应该对代码进行改进或更改,但我会在这个问题中指出jeroen answer,因为他几乎涵盖了所有内容。