tere
osaako joku nähdä ongelman alla olevassa koodissa?
ongelmana on, että tieto ei päivity jostain syystä.
koodi:
if(!empty($_POST['nimi']) AND !empty($_POST['id']))
{
$uusi_nimi = htmlspecialchars($_POST['nimi']);
$id = htmlspecialchars($_POST['id']);
$con = mysql_connect("localhost", "*****", "******");
if (!$con)
{
die ('ei voitu avata tietokantaa...' . mysql_error());
}
// valitaan tietokanta
mysql_select_db("*****", $con);
$sql = "UPDATE person SET kokonimi = $uusi_nimi WHERE id = $id";
mysql_query($sql, $con);
mysql_close($con);
}
osaako joku nähdä ongelman alla olevassa koodissa?
ongelmana on, että tieto ei päivity jostain syystä.
koodi:
if(!empty($_POST['nimi']) AND !empty($_POST['id']))
{
$uusi_nimi = htmlspecialchars($_POST['nimi']);
$id = htmlspecialchars($_POST['id']);
$con = mysql_connect("localhost", "*****", "******");
if (!$con)
{
die ('ei voitu avata tietokantaa...' . mysql_error());
}
// valitaan tietokanta
mysql_select_db("*****", $con);
$sql = "UPDATE person SET kokonimi = $uusi_nimi WHERE id = $id";
mysql_query($sql, $con);
mysql_close($con);
}
Vastaukset 6
Vanhimmat
laita $uusi_nimi -> '$uusi_nimi' niin johan toimii. Oletan siis, että $uusi_nimi on tavallinen string tai varchar tai vastaava tektikenttä.
Kokeilin myös tuota aikaisempaa neuvoa, ei tulosta mitään virheilmoitusta.
Ainoastaan valkoinen ruutu tulee tuon päivityksen jälkeen ja kun haen tietoa uudestaan, niin ei siellä mitään ole päivittynyt...
tuo ongelma voisi ehkäpä johtua siitä, että tuosta ID:stä ja auto incrementistä?
Eli vika oli siinä ID:ssä, en kyllä jummarra miksi..
Nyt kun teen päivityksen näin:
"UPDATE person SET kokonimi = $uusi_nimi WHERE sotu = $sotu";
niin johan pelittää....=)
korvaa
mysql_query($sql, $con);
tällä
$result = mysql_query($sql, $con);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
Pahatietoturvariski, aja kaikelle datalle mikä tulee käyttäjältä mysql_real_escape_string()
-Ihan periaatteen vuoksi. Kannattaa ottaa tavaksi enne kuin sivusto alhaalla..