向数据库添加新值,没有错误但不输入


adding a new value to database, no error but does not enter

当团队名称不在数据库中时,我想输入它,如果不忽略它。但是我没有收到错误,我看到的只是回显语句,但它没有输入到数据库中。数据库是MySQL,表名是2012FallTeamstats我有一个team_id列,它是自动递增的输赢和百分比字段。(表中共4个)

mysql_query("SELECT teamname FROM 2012FallTeamstats WHERE teamname = '$teamH'"); 
if (mysql_affected_rows() == 0) {
    mysql_query("INSERT INTO 2012FallTeamstats (teamname) VALUES ('$teamH')");
    echo "New: <strong>".stripslashes($teamH)."</strong> (home team) inserted into the database.<br>";
}

请尝试mysql_num_rows()而不是mysql_affected_rows。

像这样的代码。

$result_team =  mysql_query(.........); (your code)

然后

if(mysql_num_rows($result_team) == 0)
{
//insert command
}

如果您剪切并粘贴打印出来的 SQL 并从命令行输入到 MySQL 中会发生什么?我怀疑您可能需要将表中的额外字段添加到 SQL 中,但如果您运行现有 SQL,您将看到该语句是否存在问题。

您没有从查询中获得结果:

注意:$result=

加上 mysql_num_rows() & quoting column & or die(mysql_error());

$result = mysql_query("SELECT `teamname` FROM `2012FallTeamstats` WHERE teamname = '$teamH'"); 
if (mysql_num_rows($result) == 0) {
    mysql_query("INSERT INTO `2012FallTeamstats` (teamname) VALUES ('$teamH')")or die(mysql_error());
    echo "New: <strong>".stripslashes($teamH)."</strong> (home team) inserted into the database.<br>";
}

您的第二个语句可能没有被调用,因为 mysql_affected_rows() 不会为您提供 select 语句中的计数 - 该函数仅适用于您的 CRUD 操作。尝试将其替换为 mysql_num_rows()