mysql + php

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);
}
6310
Äänestä

Muut lukivat myös

Vastaukset 6

Vanhimmat

laita $uusi_nimi -> '$uusi_nimi' niin johan toimii. Oletan siis, että $uusi_nimi on tavallinen string tai varchar tai vastaava tektikenttä.

Äänestä
  • 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...

    Äänestä

  • ongelma* kirjoitti:

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

    Äänestä

  • mutta...... kirjoitti:

    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ää....=)

    Äänestä

korvaa

mysql_query($sql, $con);

tällä

$result = mysql_query($sql, $con);
if (!$result) {
die('Invalid query: ' . mysql_error());
}

Äänestä

Pahatietoturvariski, aja kaikelle datalle mikä tulee käyttäjältä mysql_real_escape_string()

-Ihan periaatteen vuoksi. Kannattaa ottaa tavaksi enne kuin sivusto alhaalla..

Äänestä

Kommentoi aloitusta


ongelma* kirjoitti:

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

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu