sql >> Databasteknik >  >> RDS >> Mysql

Det går inte att uppdatera data från MySQL-databasen

Du använder två olika variabler:

$parcelno i din UPPDATERINGSfråga

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

båda variablerna måste match. Om en inte gör det kommer hela din fråga att misslyckas.

Lägg till felrapportering högst upp i din(a) fil(er) direkt efter din inledande taggen, som hjälper till under förproduktionstestning.

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

Din nuvarande kod är öppen för SQL-injektion . Använd förberedda uttalanden , eller PDO med förberedda uttalanden .

Dessutom citerar jag nkchandra i en kommentar +1 (om jag får):

"Irrelevant för din fråga, men FYI, PHPMyAdmin är inte en databas utan ett verktyg för att interagera med databas som mysql i ditt fall"

Redigera: Efter att ha läst din kommentar verkar det som att du måste byta till mysqli_ funktioner.

Detta är bara en snabb lösning innan du lär dig använda förberedda påståenden.

<?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

Dessutom enligt r3wt's kommentar:Du kan också använda:

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

istället för

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


  1. Säkerhetsstrategier inom datamodellering. Del 3

  2. min transaktion återställs inte när något går fel i C# med mysql?

  3. ORA-01034:ORACLE inte tillgänglig ORA-27101:delat minnesrike existerar inte

  4. Hur man importerar MySQL-databaser på kommandoraden