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");