Gå til innhold

Problemer med å skrive til mysql


Anbefalte innlegg

<?

switch ($_POST['do'])	{
case "":
 form();
 comments();
 break;
case "1":
 $art = $_POST['art'];
 $name = $_POST['name'];
 $comment = $_POST['comment'];
 add_comment($art, $name, $comment);
 break;
}

function form()	{
echo "<form action='comment.php' method='post'>\n"
 ."<label for='name'>Navn</label><br />\n"
 ."<input type='text' name='name' /><br />\n"
 ."<label for='comment'>Komentar</label><br />\n"
 ."<textarea cols='50' rows='5' name='comment'>\n"
 ."</textarea><br />\n"
 ."<input type='hidden' name='do' value='1' />\n"
 ."<input type='hidden' name='art' value='" . $_GET['art'] . "' />\n"
 ."<input type='submit' value='submit' />\n<br />\n"
 ."</form><br />\n";
}

function comments()	{
$sql = "SELECT * FROM `prog_comment` WHERE `art` = '$_GET[art]' ORDER BY `id` ASC";
$sql_query = mysql_query($sql);
while ($comment = mysql_fetch_array($sql_query))	{
echo "<div class='ramme_2'>\n"
 ."<b>" . $comment['name'] . "</b><br />\n"
 . $comment['comment'] . "\n"
 ."</div>";
}
}

function add_comment($art, $name, $comment)	{

$fjern = array("<",">");
$erstatt = array("<",">");
$name = str_replace($fjern, $erstatt, $name);
$comment = str_replace($fjern, $erstatt, $comment);

$sql = "INSERT INTO `prog_comment` (`art`, `name`, `comment`) VALUES ('$art' , '$name' , '$comment')";
mysql_query($sql) or die(mysql_error());
}
?>

Denne koden skal skrive til en tabelll i databasen min, men jeg får bare disse feilmeldingene:

 

Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /usr/home/web/wno47857/comment.php on line 47

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /usr/home/web/wno47857/comment.php on line 47
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

 

line 47 er dette: mysql_query($sql) or die(mysql_error());

 

noen som ser hva som er feil?

 

EDIT: La til alt som er skrevet i filen

Endret av Scix
Lenke til kommentar
Videoannonse
Annonse
Gjest Slettet+6132

Hmm! Jeg får samme error på min webserver, men jeg trodde det kom av at jeg ved et uhell CHOWNet alt til root. Men nå begynner jeg å lure her...

 

EDIT:

Warning: mysql_connect(): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /www/htdocs/guestbook/functions.php on line 107

Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

 

EDIT2:

// Kobler til databasen

$link = mysql_connect("$host", "$user", "$password") or die('Error: ' . mysql_error());

 

// Velger database

mysql_select_db("$db") or die('Databasefeil!');

 

// Setter inn info

$info = "('$nick','$navn','$epost','$tid','$kommentar','$ip')";

$query = "INSERT INTO gjestebok (nick, navn, epost, tid, kommentar, ip) VALUES $info";

$insert = mysql_query($query);

 

// Kobler fra databasen

mysql_close($link);

Endret av Slettet+6132
Lenke til kommentar
Gjest Slettet+6132

Hmm, når jeg fjerna variablene og skrev direkte inn så funka det. Merkelig...

 

mysql> select * from gjestebok;

+----+------+------+----------------+------------+-----------+----------+

| id | nick | navn | epost | tid | kommentar | ip |

+----+------+------+----------------+------------+-----------+----------+

| 1 | ex0n | eRik | [email protected] | 1117372692 | Test... | 10.0.0.1 |

| 2 | ex0n | eRik | [email protected] | 1117373010 | test... | 10.0.0.1 |

+----+------+------+----------------+------------+-----------+----------+

2 rows in set (0.01 sec)

 

Spørsmålet er hvorfor det ikke vil funke med variabler i connecten...

Endret av Slettet+6132
Lenke til kommentar
Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /usr/home/web/wno47857/comment.php on line 47

 

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /usr/home/web/wno47857/comment.php on line 47

Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

Er kjent med disse feilmeldingene. De gangene jeg har opplevd å få disse meldingene har hosten min forklart at det er forårsaket av en bruker på samme server som fyller opp minnet eller /tmp, slik at PHP ikke får koblet til MySQL. Dette er noe hosten må rette på, så jeg foreslår at du sender en mail der du forklarer problemet og ber hosten sjekke om det er en bruker som bruker veldig ressurskrevende script på serveren.

Lenke til kommentar
Gjest Slettet+6132
Er kjent med disse feilmeldingene. De gangene jeg har opplevd å få disse meldingene har hosten min forklart at det er forårsaket av en bruker på samme server som fyller opp minnet eller /tmp, slik at PHP ikke får koblet til MySQL. Dette er noe hosten må rette på, så jeg foreslår at du sender en mail der du forklarer problemet og ber hosten sjekke om det er en bruker som bruker veldig ressurskrevende script på serveren.

Kan det umulig være. Min host står 15,47cm til venstre for meg, og det fungerer jo når jeg droppa variablene og skrev infoen direkte.

Lenke til kommentar

Gjorde slik at den kontaktet database en gang til, hvis function add_comment ble kjørt. da fikk jeg bare en ny feilmelding

 

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'er enda en test)' at line 1

 

Da prøver jeg å lagre kommentaren : "Dette er enda en test"

Lenke til kommentar

det funker nå.

 

la til require 'dbconnet.php' i function add_comment

 

function add_comment($art , $name , $comment)	{
 require 'dbconnect.php';
 $fjern = array("<",">");
 $erstatt = array("<",">");
 $name = str_replace($fjern, $erstatt, $name);
 $comment = str_replace($fjern, $erstatt, $comment);
 $sql = "INSERT INTO `prog_comment` (`art`, `name`, `comment`) VALUES ('$art' , '$name' , '$comment')";
 mysql_query($sql) or die(mysql_error());
}

 

Stor tabbe fra meg. Tenkte ikke på at index ikke blir lastet, når jeg setter action='comment.php' i formen :blush:

Endret av Scix
Lenke til kommentar

Hallo. Jeg har et lite spørsmål siden du har klart det du ville. Jeg har en db der brukernavn skal være unike. Hvordan kan jeg skjekke om noen har brukt brukernavnet jeg vil registrere meg med? (det blir skjekket og jeg får mld om det er opptatt hvis det er det, ellers så går jeg videre i registreringen)

Lenke til kommentar
Gjest Slettet+6132
Hallo. Jeg har et lite spørsmål siden du har klart det du ville. Jeg har en db der brukernavn skal være unike. Hvordan kan jeg skjekke om noen har brukt brukernavnet jeg vil registrere meg med? (det blir skjekket og jeg får mld om det er opptatt hvis det er det, ellers så går jeg videre i registreringen)

$query = "SELECT brukernavn FROM tabell WHERE brukernavn = '$brukernavn'";
$get = mysql_query($query);
$rader = mysql_num_rows($get);

if ($rader > 0)
{
echo "Brukernavnet er opptatt";
} else {
.....
}

 

Sånn ca... ;)

 

EDIT: Glemte noe viktig :blush:

Endret av Slettet+6132
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...