$con=mysqli_connect("localhost","eradmin","eradmin","employrank",8889);
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$id = isset($_POST['id']) ? $_POST['id'] : null;
$add = isset($_POST['add']) ? $_POST['add'] : null;
if($id != null){
$stmt = $con->prepare('update contestants set score = score + 1 where id = ?');
$stmt->bind_param('i', $id);
$stmt->execute();
}
if($add != null){
$ln = isset($_POST['ln']) ? $_POST['ln'] : null;
$fn = isset($_POST['fn']) ? $_POST['fn'] : null;
$dv = isset($_POST['div']) ? $_POST['div'] : null;
$sr = isset($_POST['scr']) ? $_POST['scr'] : null;
$stmtAdd = $con->prepare('insert into contestants(ID, last_name, first_name, dept, score) values (DEFAULT,?, ?, ?, ?)');
$stmtAdd->bind_param('ssii', $ln, $fn, $div, $scr);
$stmtAdd->execute();
}
stmt 执行正常。但是stmtAdd不会被执行。我放置了回声,它确实在那里。不知道会是什么。
确保 ID 不是 AI。(只是一个见解(
但是,您在以下$div
使用了错误的变量并$scr
:
$stmtAdd->bind_param('ssii', $ln, $fn, $div, $scr);
应分别读作$dv
和$sr
。
$stmtAdd->bind_param('ssii', $ln, $fn, $dv, $sr);
根据您目前拥有的内容:
$dv = isset($_POST['div']) ? $_POST['div'] : null;
和
$sr = isset($_POST['scr']) ? $_POST['scr'] : null;
- 使用错误报告会发出这些未定义的变量的信号。
将错误报告添加到文件顶部,这将有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:错误报告只应在暂存中完成,而不应在生产环境中完成。