我有一个简单的查询,用于插入基于表单提交的记录,但它并没有将记录写入数据库。它也没有抛出错误。我使用了var_dump,并验证了变量是否正确发布,所以我认为问题出在查询语法上,但我也检查过了。
非常感谢任何帮助或指导。这是代码:
if (isset($submit)){
$user_id = $_SESSION['user_id'];
$anthem1 = $_POST['anthem1'];
$cointoss2 = $_POST['cointoss2'];
$query = "INSERT INTO mypicks (";
$query .= " user_id, anthem1, cointoss2";
$query .= ") VALUES (";
$query .= " '{$user_id}', '{$anthem1}', '{$cointoss2}'";
$query .= ")";
$result = mysqli_query($connection, $query);
}
您需要在代码中添加一些检查。
首先,你要确保你的数据库连接正在进行:
$connection = new mysqli('localhost', 'username', 'password', 'database');
if($connection->connect_errno > 0){
die('Unable to connect to database [' . $connection->connect_error . ']');
}
接下来,您需要确保您的$submit
变量已设置,因此您的代码块实际上正在启动。
如果是,请确保您的查询有效:
$user_id = $_SESSION['user_id'];
$anthem1 = $_POST['anthem1'];
$cointoss2 = $_POST['cointoss2'];
$stmt = $connection->prepare("INSERT INTO mypicks ( user_id, anthem1, cointoss2 ) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $user_id, $anthem1, $cointoss2);
$stmt->execute();
if(!$result = $stmt->get_result()){
die('There was an error running the query [' . $connection->error . ']');
}
也不要忘记在病房后清理
$stmt->close();
$connection->close();