Sostituire dati database

  • Creatore Discussione Creatore Discussione zighy
  • Data di inizio Data di inizio

zighy

Utente Attivo
20 Gen 2012
96
0
0
Salve a tutti,
Ho uno script php che salva dei dati in un database mysql.Ora dovrei fare in modo di sostituire certi dati quando l'id è gia presente nel database.
Non ho idea di come fare.Lo script è questo:

PHP:
<?php 
$connessione=mysql_connect("localhost", "my_database","*******");
if(!$connessione){ 
              die('Impossibile connettersi:'.mysql_error()); 
  } 

mysql_select_db("my_database", $connessione); 


$id=$_POST['id'];
$x1=$_POST['assex']; 
$y1=$_POST['assey'];  

$sql="insert into coordinate(id,x,y) values('".$_POST['id']."','".$_POST['assex']."','".$_POST['assey']."')"; 

$result=mysql_query($sql); 

if(!$result){ 
       die ('Errore:'.mysql_error()); 
} 

mysql_close($connessione); 

?>
 
Si è interessante, ma nn mi funziona...ho modificato cosi:

PHP:
<?php  
$connessione=mysql_connect("localhost", "my_database","*******"); 
if(!$connessione){  
              die('Impossibile connettersi:'.mysql_error());  
  }  

mysql_select_db("my_database", $connessione);  


$id=$_POST['id']; 
$x1=$_POST['assex'];  
$y1=$_POST['assey'];   

$sql="insert into coordinate(id,x,y) values('".$_POST['id']."','".$_POST['assex']."','".$_POST['assey'].''ON DPLICATE KEY
)"; 
 
$result=mysql_query($sql);  

if(!$result){  
       die ('Errore:'.mysql_error());  
}  

mysql_close($connessione);  

?>
 
Prova così:
PHP:
<?php
if (!mysql_connect('localhost', 'my_database', '*******') || !mysql_select_db('my_database')) {
    die(sprintf('Impossibile connettersi al database: "%s".', mysql_error()));
}

$id = mysql_real_escape_string($_POST['id']);
$x1 = mysql_real_escape_string($_POST['assex']);
$y1 = mysql_real_escape_string($_POST['assey']);

$sql = <<<'EOD'
INSERT INTO coordinate (id, x, y) VALUES ('%s', '%s', '%s')
ON DUPLICATE KEY UPDATE x = %2$s, y = %3$s
EOD;

$sql = sprintf($sql, $id, $x1, $y1);

if (!mysql_query($sql)) {
    die(sprintf('Impossibile eseguire la query ("%s"): "%s".', $sql, mysql_error()));
}

mysql_close();
?>
Una domanda: perché consenti all'utente di specificare anche l'ID del record? Dovrebbe essere una chiave primaria e auto incrementante.
Una raccomandazione: non usare la libreria mysql, è deprecata! Usa mysqli o, ancora meglio, PDO.
 
L'utente non specifica l'id ,viene preso dai div....uso mysql perchè ho sempre usato questa libreria , non saprei da che parte rifarmi, ad ora, con quelle che hai consigliato tu ma vedro' di dargli un occhio...
Pero'lo script che mi hai passato non funziona!!!!NoN ho idea del perchè!
 
Ultima modifica:
Primary kay...assolutamente certo! Non è che non mi sostituisce i dati non me li carica proprio!!!
 

Discussioni simili