gpt4 book ai didi

PHP/MySQL : Not inserting into database

转载 作者:行者123 更新时间:2023-11-30 23:59:09 25 4
gpt4 key购买 nike

好吧,我正在努力做到每 24 小时有人可以为“服务器”投票,但目前,我被困在这里:

    function vote1() {
$pull = $_SERVER['REMOTE_ADDR'];
$votersIp = "select votersIp from voters";
$usersIp = $_SERVER['REMOTE_ADDR'];





$fetch = mysql_query("SELECT * FROM voters WHERE votersIp = '".$_SERVER['REMOTE_ADDR']."'");



while($rude = mysql_fetch_array($fetch)){

if($rude[votersIp] != $pull) {
$zoot="INSERT INTO voters (votersIp, lastVoted) VALUES ('$usersIp', '0')";
mysql_query($zoot) or die ( mysql_error() );
echo 'Voters IP not in database'; //debugging
}

if($rude[votersIp] = $pull) {
echo 'found ip'; //debugging
}

}

所以,如果您不知道,我正在尝试做到这一点,以便每次有人投票时,它都会将他们的 IP 地址添加到数据库中。我知道我在这里犯了一些非常基本的错误,但我仍在学习。

如果您能发布修复程序,我将不胜感激,但也能解释我做错了什么,任何建议也都很好。

谢谢!

最佳答案

您的代码中有几个问题。

  1. whilefunction

    缺少右括号
  2. 我们不需要遍历所有选民表来查明某个 IP 是否在数据库中。我们可以简单地在 SQL 命令中使用 WHERE 子句,如下所示:SELECT votersIp FROM voters WHERE votersIp = $userIp

  3. 有很多不必要的名字奇怪的变量。

  4. 作为一项安全措施,我们将用作 SQL 命令的一部分的任何内容都应该进行转义,以避免容易受到某些类型的攻击。<​​/p>

  5. 当数组索引是字符串时,它们应该在引号之间。所以,$rude[votersIp] 是错误的,而 $rude['votersIp'] 是正确的。 (没有引号,PHP 将其解释为常量,而不是字符串。)

  6. $rude[votersIp] = $pull 语句是一个变量赋值。您应该使用正确的运算符 == 来比较值:$rude[votersIp] == $pull

  7. 糟糕的缩进使我们人类读者更难理解代码。好的缩进更好。

  8. while 循环根据搜索特定 IP 的查询结果完成。这意味着其中 if 的第一个条件永远不会为真(不同的 IP),因此 INSERT 永远不会运行。

这是一个改进的版本:

function vote()
{
$ip = $_SERVER['REMOTE_ADDR'];
$select = 'SELECT votersIp FROM voters WHERE votersIp = "' . mysql_real_escape_string($ip) . '"';
$search = mysql_query($select);
$voter = mysql_fetch_array($search);

if (!empty($voter))
{
echo 'found ip'; //debugging
}
else
{
echo 'Voters IP not in database'; //debugging
$insert = 'INSERT INTO voters (votersIp, lastVoted) VALUES ("' . mysql_real_escape_string($ip) . '", "0")';
mysql_query($insert);
}
}

建议:你应该阅读和学习一本适合初学者的编程好书。由于我不能为你推荐具体的书,我建议你要求推荐一本书。一本适合初学者学习如何编程的好书。

关于PHP/MySQL : Not inserting into database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9405750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com