Php 首次插入MySQLi语句后不起作用
我有一个非常标准的MySQL insert into语句,它似乎不起作用。我在这个页面上发布了一个HTML表单,它正在翻译信息并插入到表中(待定的工作)。它第一次起作用,之后就再也没有起作用了。我不想更新行,但每次提交代码时都会添加一个全新的行,所以我觉得这很简单。代码如下:Php 首次插入MySQLi语句后不起作用,php,mysql,post,mysqli,sql-insert,Php,Mysql,Post,Mysqli,Sql Insert,我有一个非常标准的MySQL insert into语句,它似乎不起作用。我在这个页面上发布了一个HTML表单,它正在翻译信息并插入到表中(待定的工作)。它第一次起作用,之后就再也没有起作用了。我不想更新行,但每次提交代码时都会添加一个全新的行,所以我觉得这很简单。代码如下: <?php include('includes/connect.php'); $id=$mysqli->real_escape_string($_POST['id']); $sql = "SELECT * FR
<?php
include('includes/connect.php');
$id=$mysqli->real_escape_string($_POST['id']);
$sql = "SELECT * FROM users WHERE id='$id'";
$result = $mysqli->query($sql);
$row = mysqli_fetch_array($result);
$user_id = $_SESSION['user_id'];
$company_name = $row['company_name'];
$date_registered = $row['date_registered'];
$job_title=$mysqli->real_escape_string($_POST['jobtitle']);
$job_description=$mysqli->real_escape_string($_POST['jobdescription']);
$salary=$mysqli->real_escape_string($_POST['salary']);
$industry_sector=$mysqli->real_escape_string($_POST['industry']);
$number_people=$mysqli->real_escape_string($_POST['num_people']);
if(isset($_POST['payment']) && $_POST['payment']=='yes'){
$payment_received = 'Yes';
}
else{
$payment_received = 'No';
}
$sql_add = "INSERT INTO pending_jobs (company_name, job_title) VALUES ('$company_name', '$job_title')";
$result_add = $mysqli->query($sql_add);
if(isset($result_add)){
session_start();
$id = $row['id'];
$_SESSION['user_id'] = $user_id;
header('location:profile.php?id='.$id);
} else {
echo "<script>alert('".$job_title."');</script>";
}
?>
唯一列或索引可能会阻止此insert语句。只需在phpmyadmin或mysql控制台中测试相同的插入。此外,即使$result\u add为false,isset()也将为true:)唯一的列或索引可能会阻止此insert语句。只需在phpmyadmin或mysql控制台中测试相同的插入。此外,即使$result\u add为false:)将query
更改为
$result_add = $mysqli->query($sql_add) or die($mysqli->error);
你会立刻发现问题所在。
也
始终为真,因为插入时,$result\u add
将是true
或false
以进行插入。将query
更改为
$result_add = $mysqli->query($sql_add) or die($mysqli->error);
你会立刻发现问题所在。
也
将始终为true,因为插入时,$result\u add
将为true
或false
。如果语句失败,请尝试返回错误,这样您就知道出了什么问题
$sql = "SELECT * FROM users WHERE id='$id'";
$result = $mysqli->query($sql) or die("cannot select from users");
$result_add = $mysqli->query($sql_add) or die("cannot insert");
(有些人建议使用或trigger\u error(mysqli->error.$result\u add);
但我还没有测试过这一点)
查看该表的建议也很好。如果语句失败,请尝试返回错误,这样您就知道出了什么问题
$sql = "SELECT * FROM users WHERE id='$id'";
$result = $mysqli->query($sql) or die("cannot select from users");
$result_add = $mysqli->query($sql_add) or die("cannot insert");
(有些人建议使用或trigger\u error(mysqli->error.$result\u add);
但我还没有测试过这一点)
查看表格的建议也很好。有趣的案例。。。您是否已将任何字段设置为唯一
?这就解释了沉默的失败。您可以尝试获取错误:有趣的案例。。。您是否已将任何字段设置为唯一
?这就解释了沉默的失败。您可以尝试获取错误:太好了!这是桌子结构上的一个错误。company_name变量被意外设置为主索引,因此它不允许我对同一行执行两个操作。谢谢太好了!这是桌子结构上的一个错误。company_name变量被意外设置为主索引,因此它不允许我对同一行执行两个操作。谢谢