sql >> Database teknologi >  >> RDS >> Mysql

Kan ikke opdatere data fra MySQL-databasen

Du bruger to forskellige variable:

$parcelno i din OPDATERING-forespørgsel

og $parcel =$_REQUEST['parcel'];

begge variabler skal match. Hvis man ikke gør det, vil hele din forespørgsel mislykkes.

Tilføj fejlrapportering til toppen af ​​dine fil(er) lige efter din åbning af tag, som vil hjælpe under præproduktionstestning.

error_reporting(E_ALL);
ini_set('display_errors', 1);

Din nuværende kode er åben for SQL-injektion . Brug forberedte erklæringer , eller BOB med forberedte erklæringer .

Derudover citerer jeg nkchandra i en kommentar +1 (hvis jeg må):

"Irrelevant for dit spørgsmål, men FYI, PHPMyAdmin er ikke en database, men et værktøj til at interagere med database som mysql i dit tilfælde"

Rediger: Efter at have læst din kommentar, ser det ud til, at du bliver nødt til at skifte til mysqli_ funktioner.

Dette er blot en hurtig løsning, før du lærer at bruge forberedte udsagn.

<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);


$DB_HOST = "xxx"; // replace with yours
$DB_USER = "xxx"; // replace with yours
$DB_PASS = "xxx"; // replace with yours
$DB_NAME = "xxx"; // replace with yours


$conn = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
if($conn->connect_errno > 0) {
  die('Connection failed [' . $conn->connect_error . ']');
}

$id= "";
$parcelno = "";
$items = "";
if(isset($_REQUEST['id'])){ 
$id= mysqli_real_escape_string($conn,$_REQUEST['id']); }
if(isset($_REQUEST['parcel'])){ 
$parcelno = mysqli_real_escape_string($conn,$_REQUEST['parcel']); }
if(isset($_REQUEST['items'])){ 
$items = mysqli_real_escape_string($conn,$_REQUEST['items']); }


$sql="UPDATE parcel SET parcelno='$parcelno', items='$items' where id='$id'";
$result=mysqli_query($conn,$sql) or die(mysqli_error()."\n");

if (!$result)
    {
        throw new Exception($conn->error);
    }

else { echo "Success"; }

mysqli_close($conn); // close the connection

Plus, ifølge r3wt's kommentar:Du kan også bruge:

$result= $conn->query($sql) or die(mysqli_error()."\n");

i stedet for

$result=mysqli_query($conn,$sql) or die(mysqli_error()."\n");


  1. Bash Script til indlæs data i MySQL

  2. Naturlig sortering, der understøtter store tal

  3. Formattering af data i Power BI Desktop-visualiseringer

  4. MySQL og JSON - transformer array til rækker