PHP到SQL的插入不起作用


PHP to SQL Insert not Working

我有一个简单的查询,用于插入基于表单提交的记录,但它并没有将记录写入数据库。它也没有抛出错误。我使用了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();