Avatar billede mrbs Nybegynder
06. februar 2006 - 10:07 Der er 10 kommentarer og
1 løsning

Hvorfor skriver den ikke i databasen?

Hej!

Kan nogen fortælle hvorfor denne kode ikke skriver til databasen... Den kommer ikke med nogen fejlmeddelelser, men skriver den tekst der er skrevet i bunden...?

Er der en fornuftig forklaring?

<?php
include 'config.php';

$todb_publish = $_REQUEST["input_publish"];
$todb_title = $_REQUEST["input_title"];
$todb_author = $_REQUEST["input_author"];
$todb_theme = $_REQUEST["input_theme"];
$todb_info = $_REQUEST["input_info"];
$todb_article = $_REQUEST["input_article"];
$todb_approved_yes = $_REQUEST["approved_yes"];
$todb_approved_by = $_REQUEST["approved_by"];

$table_name = "$table_prefix$todb_publish$todb_title";

$tabelSQL = "create Table $table_name
(
    publish    varchar(50),
    title      varchar(50),
    author      varchar(50),
    theme      varchar(50),
    info        varchar(200),
    article    varchar(3000),
    approved    varchar(10),
    approvedby  varchar(50)
)";

$insert_to_db = "insert into $table_name set
    publish='$todb_publish', title='$todb_title', author='$todb_author', theme='$todb_theme', info='$todb_info', article='$todb_article', approved='$todb_approved_yes', approvedby='$todb_approved_by'";

$connection = mysql_connect("$db_url", "$db_user", "$db_pass");
mysql_select_db("$db_name");
mysql_query($insert_to_db);
mysql_close($connection);

//her skal komme nogle betingelser

echo "Dette blev skrevet til tabellen: <br />$todb_publish<br />$todb_title<br />$todb_author<br />$todb_theme<br />$todb_info<br />$todb_article<br />$todb_approved_by";

?>
Avatar billede eagleeye Praktikant
06. februar 2006 - 11:08 #1
En insert sql har denen syntax:

insert into tabelnavn (kolonne1, kolonne2, kolonne3, ... kolonneN) values ('data til kolonne1', 'data til kolonne2', 'data til kolonne3', ..... 'data til kolonneN');

Den syntax du har brugt er den man bruger til en update sql sætning.
Avatar billede morhan Novice
06. februar 2006 - 11:13 #2
mysql understøtter faktisk begge måder til at indsætte nye rækker

prøv at ændre din query, og se om du kan få den ud med en fejl
mysql_query($insert_to_db) or die(mysql_error());
Avatar billede mrbs Nybegynder
06. februar 2006 - 11:54 #3
Jeg har prøvet at ændre mysql_query($insert_to_db) til mysql_query($blabla) og den giver ingen fejlmeddelelse...
Avatar billede mrbs Nybegynder
06. februar 2006 - 12:00 #4
morhan >> Den siger nu: Table 'free77598.empty' doesn't exist
Avatar billede mrbs Nybegynder
06. februar 2006 - 12:02 #5
free77598 er den database database jeg har adgang til
empty er det indhold den sender
Avatar billede mrbs Nybegynder
06. februar 2006 - 12:08 #6
Nu ændrede jeg den til det oprindelige:

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 'set publish='', title='', author='', theme='', info='',
Avatar billede muddi Praktikant
06. februar 2006 - 23:37 #7
Jeg forstår ikke hvorfor du har valgt at bruge VARCHAR(3000) til feltet `article`. Hvorfor ikke bruge TEXT?

Nuvel, som jeg læser din kode, så ser det ud til at du vil oprette en ny tabel $table_name, når din kode afvikles.
Dernæst vil du indsætte data med $insert_to_db.

Men du glemmer at afvikle $tabelSQL inden du forsøger at indsætte data i $table_name.
Derfor får du en fejl om at tabellen ikke findes i databasen. Og derfor bliver der ikke indsat nogen data.

Hvad mener du med "Nu ændrede jeg den til det oprindelige:"?

/Morten
Avatar billede arne_v Ekspert
06. februar 2006 - 23:48 #8
VARCHAR(3000) kraever ogsaa 5.0.3 eller nyere
Avatar billede mrbs Nybegynder
07. februar 2006 - 09:32 #9
Grunden til at jeg har gjort som jeg har gjort med VARCHAR, er at det er det første projekt jeg laver med MySQL. Jeg tjekker op på jeres rettelser!
Avatar billede mrbs Nybegynder
07. februar 2006 - 09:33 #10
skal man bare skrive TEXT i stedet for VARCHAR(3000) ?
Avatar billede mrbs Nybegynder
07. februar 2006 - 09:39 #11
Det virkede fint - tak for hjælpen - næste gang tænker jeg mig om :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester