WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   SQL-problem (https://www.wn.se/forum/showthread.php?t=23625)

Althalos 2007-09-15 19:23

Citat:

Data truncated for column 'length_hull' at row 1
Jag försöker skriva blankt till length_hull och får det felmedelandet som orsakar att ingenting skrivs... använder die() för att få det. Någon som vet vad det kan bero på?

mysputte 2007-09-15 21:06

Lite mer information vore hjälpsamt.

1. Vad har kolumnen för datatyp?
2. Är det NULL du menar med blankt?
3. Har kolumnen "NOT NULL"?

Artikel om data integritet från mysql.
http://dev.mysql.com/tech-resources/...integrity.html

Althalos 2007-09-16 00:00

Datatypen är "float", med blankt menar jag helt enkelt "". Typ jag skriver $variabel = ($info[2]) där $info[2] inte har något värde. Det har hämtats ur en databas.

Kolumnens standard är "NULL". NULL är satt till "ja" (kollar i phpmyadmin)..

WizKid 2007-09-16 00:27

Hur ser SQL-queryn ut?

Althalos 2007-09-16 01:26

$result = mysql_query("INSERT INTO boat (kolumn1, kolumn2, ..., kolumn32, kolumn33) VALUES ('$var1', '$var2', ..., 'var32', 'var33')");

Det är en helt vanlig insert query med 33 kolumner och 33 värden, har inte fyllt i nått mer.

Althalos 2007-09-16 01:51

Skulle det kunna hjälpa att sätta variabeln till NULL istället för ""... skriver man $var = NULL; då?

Althalos 2007-09-16 02:59

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 ' NULL, NULL, NULL, NULL, NULL, NULL, 314)' at line 6

Ändrade till null och fick det felmeddelandet?!

mysputte 2007-09-16 10:04

Finns det någon anledning till att du sätter det till NULL eller går det lika bra
att lägga in 0?

WizKid 2007-09-16 11:57

Kan vara bra att visa hur hela queryn ser ut och inte bara felmeddelandet.

Althalos 2007-09-16 16:18

Själva queryn:

Kod:

$result = mysql_query("INSERT INTO boat (name, boat_type_id, length_overall, length_hull, length_water, width, depth,
 * * * *depth_min, deplacement, engine, rig, lys, hull_id, hull_construction, rig_height,
 * * * *rudder_id, stern_id, other, fuel_tank, water_tank, bunks_min, bunks_max, cabin_height, interior, constructor_id)
 * * * *VALUES ($name, $boat_type, $length_overall, $length_hull, $length_water,
 * * * *$width, $depth, $depth_min, $deplacement, $engine, $rig, $lystal,
 * * * *$hull_id, $hull_construction, $rig_height, $rudder, $stern, $other, $fuel_tank, $water_tank,
 * * * *$bunks_min, $bunks_max, $ruffhojd, $interior, $c_id)");

Varje variabel har fixats på det här sättet:
Kod:

function fix($value) {
 * *if ($value == "-") return "";
 * *if (strlen($value)>0) return "'".$value."'";
 * *else return "NULL";
 * *}
$name = fix($info['name']);

Bry er inte om if $value == "-" det är bara en fulhaxx. Datan kommer ifrån en annan databas och när ingenting finns skall den egentligen vara null, men ibland är den inte det.

Det senaste felmedelandet är:

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 ' NULL, NULL, NULL, NULL, NULL, NULL, NULL)' at line 6

Det spelar roll ifall det är 0 eller null, eftersom vissa grejer kan vara noll, men null kommer när datan presenteras visa "-", alltså att man inte veta.


Alla tider är GMT +2. Klockan är nu 12:51.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson