有人可以查看这一小段代码吗?

Anr*_*rgh -2 php mysql

应该发生的是将一行插入表中,然后通过比较该特定条目的名称和姓氏来选择该行的id.

然后将返回的id插入另一个表中:

$result = false;

$result = mysql_query("INSERT INTO `reunie` (`naam`, `van`,`nooiensvan`, `selfoon`, `email`, `bywoon`, `metgesel_naam`, `spesifieke_onderwysers`, `spesifieke_musiek`, `bydrae`, `voorstelle`) VALUES ('$naam','$van','$nooiensvan','$selfoon','$email','$bywoon','$metgesel','$spesifiekeOnderwysers','$musiek','$bydrae','$voorstelle')") or die(mysql_error());

// sleep in order for query to finish
while ($result === false) {
   sleep(1);
}

$result = mysql_query("SELECT `id` FROM `reunie` WHERE `naam` = '$naam' AND `van` = '$van' ORDER BY `id` DESC LIMIT 1") or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)

//编辑

谢谢你们的重要评论.谢谢你教我一些重点.

cle*_*tus 11

尝试:

$name = mysql_real_escape_string($name);
$van = mysql_real_escape_string($van);
$nooiensvan = mysql_real_escape_string($nooiensvan);
$selfoon = mysql_real_escape_string($selfoon);
$email = mysql_real_escape_string($email);
$bywoon = mysql_real_escape_string($bywoon);
$metgesel = mysql_real_escape_string($metgesel);
$spesifiekeOnderwysers = mysql_real_escape_string($spesifiekeOnderwysers);
$musiek = mysql_real_escape_string($musiek);
$bydrae = mysql_real_escape_string($bydrae);
$voorstelle = mysql_real_escape_string($voorstelle);
$query = <<<END
INSERT INTO reunie
(naam, van, nooiensvan, selfoon, email, bywoon, metgesel_naam,
spesifieke_onderwysers, spesifieke_musiek, bydrae, voorstelle)
VALUES
('$naam','$van','$nooiensvan','$selfoon','$email','$bywoon','$metgesel',
'$spesifiekeOnderwysers','$musiek','$bydrae','$voorstelle')
END;
$result = mysql_query($query) or die(mysql_error() . ' - ' . $query);
$id = mysql_insert_id();
Run Code Online (Sandbox Code Playgroud)

是的,所有这些mysql_real_escape_string()都非常重要.

  • 或者,使用mysqli避免一千次手动逃脱死亡. (8认同)
  • 不幸的是,mysqli不稳定,我已经放弃了使用它.它不适用于LONGTEXT列,尽管经过多次尝试,但PHP团队花了3年甚至才承认.有时候我发现它只是在我身上发生错误,mysql_*工作得很好. (2认同)

Mic*_*ren 5

你应该使用mysql_insert_id而不是做一个选择来获取ID.