0

当团队名称不在数据库中时,如果不忽略它,我想输入它。但是我没有收到任何错误,我看到的只是回显语句,但它没有输入数据库。数据库是 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>";
}
4

4 回答 4

2

尝试 mysql_num_rows() 而不是 mysql_affected_rows。

像这样的代码。

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

然后

if(mysql_num_rows($result_team) == 0)
{
//insert command
}
于 2012-04-29T03:19:07.890 回答
0

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

于 2012-04-29T03:16:38.227 回答
0

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

注意: $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>";
}
于 2012-04-29T03:16:48.900 回答
0

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

于 2012-04-29T03:17:35.690 回答