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