在PHP中插入查询不起作用

在PHP中插入查询不起作用,php,mysql,Php,Mysql,我对PHP真的是个新手,正在忙于添加和编辑数据库值。我已经完成了向数据库添加信息的工作,但我似乎不知道如何正确地编辑它 我创建了一个名为edit.php的文件,下面是我迄今为止的代码: <?php include '../database/connection.php'; $id = $_GET['id']; $first_name = $_GET['first_name']; $last_name = $_GET['last_name']; $university_id = $_GE

我对PHP真的是个新手,正在忙于添加和编辑数据库值。我已经完成了向数据库添加信息的工作,但我似乎不知道如何正确地编辑它

我创建了一个名为edit.php的文件,下面是我迄今为止的代码:

<?php

include '../database/connection.php';

$id = $_GET['id'];
$first_name = $_GET['first_name'];
$last_name = $_GET['last_name'];
$university_id = $_GET['university_id'];

$sql = "UPDATE master_roster (first_name, last_name, university_id) VALUES ('$first_name', '$last_name', '$university_id') WHERE id = $id";

?>

这是错误的语法
update
采用一系列
column=value
子句:

UPDATE master_roster 
SET    first_name = '$first_name', 
       last_name = '$last_name', 
       university_id = '$university_id'
WHERE  id = $id
强制注释:

在这样的字符串中使用变量替换会使代码容易受到SQL注入攻击。你应该考虑用A代替。

你写的是错误的代码>更新< /Cord>语句。< /P> 试试这个

$sql = "UPDATE master_roster 
SET 
    first_name = '$first_name', 
    last_name = '$last_name', 
    university_id = '$university_id'
WHERE 
    id = $id";
现在使用下面的语句执行查询

$result = $conn->query($sql);
如果插入成功,
$result
将返回
true
,如果插入不成功,
false

使用此选项检查是否已完成

if($result == false){
    die( "Connection Failed: ".$conn->error );
}
还应该防止SQL注入。 您可以使用
mysqli\u real\u escape\u string()
方法

$first\u name=$\u GET['first\u name'];
$safe\u first\u name=mysqli\u real\u escape\u字符串($conn,$first\u name)

也可以使用参数化查询

阅读


现在阅读下面的代码,像这样修改你的两个页面

形式


名字
姓
大学ID
这将更新数据


“在PHP中插入查询不起作用”-但您正在使用“更新”,这是一个语法错误。我建议你回到手册。除此之外:仅仅定义一个字符串不足以对数据库服务器执行查询…你的查询是错误的。这里:作为两个不同的动物。“没有发布任何帮助的错误消息。”-这是因为你没有执行查询,也没有检查错误。一旦执行,如果您通过错误报告和查询“检查”错误,您*将得到一个错误。由于最可能的字符串文字没有被引用,此查询将失败。它需要修改。SQL注入与这个问题无关。@chris85^这是给你的;-)“SQL注入与这个问题无关”-好的,但字符串文字与此无关。是的,对@Fred ii-。让我再修改一次我的答案。公平地说,另一个答案也适用于这个答案,不应该被排除在等式之外。@Mureinik谢谢你的帮助!我试了一下,把它放在$sql=”“里面,但没有用!
UPDATE master_roster 
SET    first_name = '$first_name', 
       last_name = '$last_name', 
       university_id = '$university_id'
WHERE  id = $id
$sql = "UPDATE master_roster 
SET 
    first_name = '$first_name', 
    last_name = '$last_name', 
    university_id = '$university_id'
WHERE 
    id = $id";
$result = $conn->query($sql);
if($result == false){
    die( "Connection Failed: ".$conn->error );
}
<form action="edit.php" method="post">
  <table>
    <tr>
      <td>First Name</td>
      <td><input type="text" name="first_name"></td> 
    </tr>
    <tr>
      <td>Last Name</td>
      <td><input type="text" name="last_name"></td> 
    </tr>
    <tr>
      <td>University ID</td>
      <td><input type="text" name="university_id"></td>
    </tr>
    <tr>
      <td><input type="submit" value="Submit"></td>
    </tr>
  </table>
</form>
<?php

include '../database/connection.php';

$id = mysqli_real_escape_string($conn, $_POST['id']);
$first_name = mysqli_real_escape_string($conn, $_POST['first_name']);
$last_name = mysqli_real_escape_string($conn, $_POST['last_name']);
$university_id = mysqli_real_escape_string($conn, $_POST['university_id']);

$sql = "UPDATE master_roster 
SET 
    first_name = '$first_name', 
    last_name = '$last_name', 
    university_id = '$university_id'
WHERE 
    id = $id";

$result = $conn->query($sql);

if($result == false){
    die( "Connection Failed: ".$conn->error );
}

?>