Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: MySQL: ongelma UPDATE-lauseessa

alker [13.04.2009 15:00:49]

#

Eli tuli pikku ongelma.Yritän väsätä CMS:ää mutta admin paneeli vähän reistailee.Eli yhdistän tietokantaan ja kaikki menee hyvin mutta kun tallennan sen se reistailee.Käytän tallenuksessa sql komentoa nimeltä update.Yritän updatetaa sivua mutta ei vain toimi
tässä koodi.

<?php
include("fun.php");
yhdista();
$id = $_GET['id'];
$tekbox11 = stripslashes($_POST['tekbox1']);
$box11 = stripslashes($_POST['box1']);
$tekbox21 = stripslashes($_POST['tekbox2']);
$box21 = stripslashes($_POST['box2']);
$tekbox31 = stripslashes($_POST['tekbox3']);
$box31 = stripslashes($_POST['box3']);
$tekbox1 = mysql_real_escape_string($tekbox11,$yhteys);
$box1 = mysql_real_escape_string($box11,$yhteys);
$tekbox2 = mysql_real_escape_string($tekbox21,$yhteys);
$box2 = mysql_real_escape_string($box21,$yhteys);
$tekbox3 = mysql_real_escape_string($tekbox31,$yhteys);
$box3 = mysql_real_escape_string($box31,$yhteys);
$etusivu = mysql_real_escape_string($_POST['etusivu'],$yhteys);
$sql = "update kala_page set etusivu = '$etusivu' tekbox1 = '$tekbox1' box1 = '$box1' tekbox2 = '$tekbox2' box2 = '$box2' tekbox3 = '$tekbox3' box3 = '$box3' where id = $id";
$tulos = mysql_query($sql);
if (!$tulos) {
echo "MYSQL VIRHE!!!!!";
}
?>

Muokkaus laatikot ovat teksti laatikkoja.joilla on nimi esim.box1 jne.

Chiman [13.04.2009 15:09:09]

#

SQL-lauseestasi puuttuu pilkut eri sijoitusten väliltä:

$sql = "update kala_page set etusivu = '$etusivu', tekbox1 = '$tekbox1', box1 = '$box1', tekbox2 = '$tekbox2', box2 = '$box2', tekbox3 = '$tekbox3', box3 = '$box3' where id = $id";

Metabolix [13.04.2009 15:10:25]

#

Voisit alusta asti kertoa aina, millä tavalla koodi "reistailee". Ilmiselvästi vika ei myöskään ole PHP:ssä vaan koodissasi, joten alkuperäinen otsikkosi oli huono. Onneksi se on nyt korjattu.

Sivulle tulostettavan virheilmoituksen mukaan kannattaa kehitysvaiheessa lisätä aina mysql_error-funktiolta saatava virheilmoitus. Tämän virheilmoituksen ja minkä tahansa UPDATE-lauseesta kertovan oppaan perusteella selviää, että peräkkäisten sijoitusten väliin täytyy laittaa pilkku: SET a = 1, b = 2.

alker [13.04.2009 15:14:34]

#

Warning: mysql_real_escape_string() expects parameter 2 to be resource, null given in /home/fames/www/kulta/tallenna.php on line 11

Warning: mysql_real_escape_string() expects parameter 2 to be resource, null given in /home/fames/www/kulta/tallenna.php on line 12

Warning: mysql_real_escape_string() expects parameter 2 to be resource, null given in /home/fames/www/kulta/tallenna.php on line 13

Warning: mysql_real_escape_string() expects parameter 2 to be resource, null given in /home/fames/www/kulta/tallenna.php on line 14

Warning: mysql_real_escape_string() expects parameter 2 to be resource, null given in /home/fames/www/kulta/tallenna.php on line 15

Warning: mysql_real_escape_string() expects parameter 2 to be resource, null given in /home/fames/www/kulta/tallenna.php on line 16

Warning: mysql_real_escape_string() expects parameter 2 to be resource, null given in /home/fames/www/kulta/tallenna.php on line 17
Tuo tapahtui nyt.=((

Chiman [13.04.2009 15:41:04]

#

Tuo tarkoittanee, että $yhteys-muuttujaa ei ole määritelty (globaalisti), joten se on null.

Teuro [13.04.2009 15:43:20]

#

Jälkimmäiseen vastaan, että muuttujasi $yhteys on huonosti muodostettu / se ei ole tuolle funktiolle näkyvillä. Se oletettvasti luodaan tiedostossa fun.php? Siellä lienee virhe. mysql_connect taitaa antaa resurssiksi NULL:n, jos muodostus epäonnistuu.

Antti Laaksonen [13.04.2009 16:44:47]

#

Muuttuja $yhteys ei ole pakollinen funktiossa mysql_real_escape_string, joten voit ottaa sen pois ja antaa funktiolle vain yhden parametrin.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta