索引是空的,我不明白为什么是PHP



我正在尝试创建我的投资组合网站,在那里我可以从只有我才能访问的面板添加内容(如项目、技能等(。

我不想更新经验,但它一直告诉我:Notice: Undefined index: id in D:projectspersonal_portfolioclassesdatabaseQueries.php on line 245,就是这行:$id =$this->conn->real_escape_string($_GET["id"]);。这与我在项目函数中使用的行完全相同。

这对我来说没有意义,因为它本质上与我用于更新项目的功能相同。通过更新项目,它运行良好,不会导致任何错误。

这是一个让体验显示在输入中的功能,它下面是一个应该更新体验的功能:

public function getExperienceUpdate(){
$id =$this->conn->real_escape_string($_GET["id"]);
$query = "SELECT * FROM experience WHERE id = '$id'";
$result = $this->conn->query($query);
if($result){
if ($result->num_rows > 0) {
$data = array();
while ($row = $result->fetch_assoc()) {
$data[] = $row;
}
return $data;
var_dump($id, $query, $result);exit();
}else{
echo "No records found";
}
}else {
echo "error in ".$query."<br>".$this->conn->error;
}
}
public function putExperience(){
$function = $this->conn->real_escape_string($_POST['function']);
$company = $this->conn->real_escape_string($_POST['company']);
$place = $this->conn->real_escape_string($_POST['place']);
$summary = $this->conn->real_escape_string($_POST['summary']);
$period = $this->conn->real_escape_string($_POST['period']);
$companywebsite = $this->conn->real_escape_string($_POST['companywebsite']);
$id = $this->conn->real_escape_string($_POST['id']);
if (!empty($id) && !empty($postData)) {
$query = "UPDATE experience SET (function, company, place, summary, period, companywebsite) VALUES ($function, $company, $place, $summary, $period, $companywebsite) WHERE id = '$id'";
$sql = $this->conn->query($query);
if ($sql==true) {
header("Location: index.php?content=message&alert=update-experience-success");
}else{
header("Location: index.php?content=message&alert=updateProject-error");
}
}
}

这是一个让项目显示在输入中的功能,它下面是一个应该更新项目的功能:

public function displayProjectUpdate()
{
$id =$this->conn->real_escape_string($_GET["id"]);
$query = "SELECT * FROM projects WHERE id = '$id'";
$result = $this->conn->query($query);
if($result){
if ($result->num_rows > 0) {
$data = array();
while ($row = $result->fetch_assoc()) {
var_dump($id, $query);exit();
$data[] = $row;
}
return $data;
}else{
echo "No found records";
}
}else {
echo "error in ".$query."<br>".$this->conn->error;
}
}
public function updateProjects($postData) {
$filename = $this->conn->real_escape_string($_POST['filename']);
$name = $this->conn->real_escape_string($_POST['name']);
$githublink = $this->conn->real_escape_string($_POST['githublink']);
$websitelink = $this->conn->real_escape_string($_POST['websitelink']);
$p1 = $this->conn->real_escape_string($_POST['p1']);
$p2 = $this->conn->real_escape_string($_POST['p2']);
$p3 = $this->conn->real_escape_string($_POST['p3']);
$p4 = $this->conn->real_escape_string($_POST['p4']);
$id = $this->conn->real_escape_string($_POST['id']);
if (!empty($id) && !empty($postData)) {
$query = "UPDATE projects SET filename = '$filename', name = '$name', githublink = '$githublink', websitelink = '$websitelink', p1 = '$p1', p2 = '$p2', p3 = '$p3', p4 = '$p4' WHERE id = '$id'";
$sql = $this->conn->query($query);
if ($sql==true) {
header("Location: index.php?content=message&alert=updateProject-success");
}else{
header("Location: index.php?content=message&alert=updateProject-error");
}
}
}

非常感谢所有的帮助!

提前感谢!

我更改了的查询

$query = "UPDATE experience SET (function, company, place, summary, period, companywebsite) VALUES ($function, $company, $place, $summary, $period, $companywebsite) WHERE id = '$id'";

$query = "UPDATE experience SET function = '$function', company = '$company', place = '$place', summary = '$summary', period = '$period' WHERE id = '$id'";

现在它起作用了。

我可能在查询中有一个拼写错误,所以我决定重做这些函数,现在它可以工作了!

最新更新