从MySQL表中选择后,另一个INSERT INTO将始终失败

时间:2015-01-27 10:16:00

标签: php mysql mysqli

我的网站正在努力实现登录,您必须要求其他人接受您访问主页。脚本的相关部分看起来像这样

require_once("konfiguration.php");
                    $abfrage = "SELECT nick FROM login";
                    $db_erg = mysqli_query($db_link, $abfrage);
                    $counter = 0;
                    $cache = array();

                    while($zeile = mysqli_fetch_array($db_erg, MYSQL_ASSOC)) {
                        $cache[$counter]['nick'] = $zeile['nick'];
                        $counter++;
                    }
                    $fail = true;
                    $nope = "Der Nick-Name existiert nicht";
                    for($i = 0 ; $i <= $counter ; $i++) {
                        if($cache[$i]['nick'] == $asknick) {
                            $fail = false;
                            break;
                        }
                    }
                    if(!$fail) {
                        require_once("konfiguration.php");
                        $eintrag = "INSERT INTO  `homepage`.`request` (from, to, accepted, id) VALUES ('".$benutzername."', '".$asknick."', '0', '')";
                        $eintragen = mysqli_query($db_link, $eintrag);
                        if(!$eintragen) {
                            die("Es gab einen unerwarteten Fehler beim registrieren..");
                        }

                        $eintrag2 = "INSERT INTO  `homepage`.`login` (id, nutzername, passwort, loginhash, nick, email) VALUES ('', '".$benutzername."', '".md5($password)."', '".$hashwert."', '".$nickname."', '".$email."')";
                        $eintragen2 = mysqli_query($db_link, $eintrag2);
                        if(!$eintragen2) {
                            die("Es gab einen unwerarteten Fehler beim registrieren..");
                        }
                        session_start();
                        setcookie("username", $benutzername);
                        ?>

在您插入一个人的昵称后,我将接受您,我从数据库中选择所有人已经注册和接受的所有昵称。如果昵称存在,我试图写入另一个数据库(你可以在$ eintrag中看到)谁想要被接受,谁接受他,他已经被接受了。问题是,每次尝试它都会失败($ eintragen = false)。我无法看到错误。 我有什么遗失的吗?

2 个答案:

答案 0 :(得分:0)

我找到了解决方案。 显然你不允许我们“从”和“到”,甚至不在表结构中。我在MySQL-Table中将“from”和“to”更改为“person1”和“person2”,调整了代码并完美运行。

答案 1 :(得分:0)

还有更多保留字,这就是为什么我总是喜欢在表和列上使用前缀。比如table&#34; login&#34;将其命名为&#34; t_login&#34;,而不是字符串列&#34;来自&#34;使用&#34; s_from&#34;。通过这种方式,您的代码更易于阅读,并且可以避免与保留字冲突。