我正在开发一个小型 PHP + MySQL 应用程序。我遇到了一个问题,我的一个插入语句似乎导致 MySQL 在每次插入后添加一个额外的空白行。这是我的设置:
我有一个执行插入的函数:
function addFacCertification($facultyID,$month,$year,$completed,$certificatesent,$confirmationtodean,$comments)
{
//echo "$facultyID<br>$month<br>$year<br>$completed<br>$certificatesent<br>$confirmationtodean<br>$comments";
$today = getdate();
$month = $today["mon"];
$date = $today["mday"];
$year = $today["year"];
$curdate = "$year" ."-". "$month" . "-" . "$date";
$sql = mysql_query("INSERT INTO facultycertification (facultyID,cmonth, cyear, completed, certificatesent, confirmationtodean, comments, certifiedon)
VALUES ('$facultyID', '$month', '$year', '$completed', '$certificatesent', '$confirmationtodean','$comments', '$curdate')");
return $sql;
}
函数调用:
$sqlresults = addFacCertification($_POST["facultyID"], $_POST["month"], $_POST["year"], $_POST["completed"], $_POST["csent"],
$_POST["ctodean"], $_POST["comments"]);
问题是,每次运行时 - 我的表格中都会多出一行:(参见下面的第二行) 图像在这里:
有什么想法吗?这是表结构:
id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
facultyID INT NOT NULL,
cmonth INT NOT NULL,
cyear INT NOT NULL,
completed INT NOT NULL,
certificatesent INT NOT NULL,
confirmationtodean INT NOT NULL,
comments TEXT,
certifiedon DATE,
FOREIGN KEY (facultyID) REFERENCES faculty(id)
最佳答案
我想你的代码不知何故被执行了两次。我建议执行以下操作(按顺序)来调试该问题:
- 取消注释函数内的
echo
并查看它是否回显两次(即您调用该函数两次) - 如果您通过网络请求运行此命令
tail
网络服务器日志以查看是否发出了两次请求 - 在 MySQL 服务器上启用常规日志记录或启用分析,以查看实际对服务器运行的 SQL 查询
如果您自己没有设置的话,您可以在数据库上使用类似 MySQL 触发器的东西来执行此操作,但我认为这不太可能。
关于php - MySQL/PHP - 在 INSERT 语句上插入额外的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6048855/