Vage INSERT query error

Pagina: 1
Acties:

  • dynast
  • Registratie: December 2002
  • Laatst online: 02-08-2025
Ik heb een upload scriptje gemaakt die niet alleen de bestanden gewoon upload, maar ook info naar twee tabellen stuurt. Nu heb ik een tabel binarydata en temp
Binarydata: bin_id (int) (auto_increment), filename (varchar), filesize(varchar), filetype(varchar)
Temp: temp (int) (auto_increment), bin_id (int), filename (varchar), filesize(varchar), filetype(varchar)

Als ik de velden filename, filesize en filetype drop uit de tabel temp en de 2e INSERT query daarop aanpas werkt het wel. Maar anders krijg ik deze foutmelding: Parse error: parse error, unexpected '=' in /usr1/biv/00/leens000/html/digidropbox/test.php on line 58


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?
$absolute_path = "/usr1/biv/00/leens000/html/test/"; //Absolute path to where files are uploaded

$hostname = "xxxx";
$username = "xxxx";
$password = "xxxx";
$dbName = "xxxx";

MYSQL_CONNECT($hostname,$username,$password) OR DIE("Unable to connect to database");
@mysql_select_db("$dbName") or die("Unable to select database"); 
 
if ($page == ""):
?>
<Table class="content">
  <FORM ACTION="test.php?page=save_data" METHOD="POST" enctype="multipart/form-data">
        <TR> 
            <TD class="form1">Document:<br>
            </TD>
            <TD colspan="2"> 
            <input type="file" name="file" class="form2">
            </TD>
        </TR>
        <TR>     
      <td valign="middle">&nbsp;</td>
            <TD>
        <input type=submit value=opslaan class="button1"
            onMouseOver="pviiClassNew(this,'button2')"
            onMouseOut="pviiClassNew(this,'button1')" name="submit2">
            </TD>
            <td>&nbsp;</td>
            </tr>
            </Form>
    </Table>
    
<?
elseif ($page == "save_data"):

if ($file != "") {

$query = "INSERT INTO binarydata VALUES('', '$file_name', '$file_size', '$file_type')";
$result = mysql_query($query);
$bin_id = mysql_insert_id();

$save_file_name = "$bin_id.sav";
@copy($file, "$absolute_path/$save_file_name") or die("Het bestand dat je probeerde up te loaden naar de server is mislukt.");

$query = "INSERT INTO temp VALUES('', '$bin_id', '$file_name', '$file_size', '$file_type')";
$result = mysql_query($query);
}
echo "Filenaam = $file_name<BR>";
echo "Filegrootte = $file_size<BR>";
echo "Filetype = $file_type<BR><BR>";
?>
<BR>
<a href="index.html">Terug naar opties</a>
<?
endif;

  • coubertin119
  • Registratie: Augustus 2002
  • Laatst online: 20-08 15:43
Ofwel ben je vergeten regel 58 erop te zetten, ofwel mekkert hij over een ontbrekende ?>, alhoewel hij bij mij dan gewoon niks parsed :).

Skat! Skat! Skat!


  • dynast
  • Registratie: December 2002
  • Laatst online: 02-08-2025
nope, hij werkt gewoon als de velden filsize, filename en filetype verwijderd zijn uit de tabel en de query

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:40
Waarom insert je het eerste veld als '' ?

Is het eerste veld misschien een autonumber veld, en wil je daarmee aangeven dat hij de volgende waarde moet nemen voor dat record?
In dat geval doe je het best zo:
code:
1
INSERT INTO tabel (VELDNAAM, VELDNAAM) VALUES ('waarde', 'waarde');

Dus, je gaat het pk-veld niet opnemen in je insert query. De databank zal dat zelf wel afhandelen.

Op de manier waarop jij het doet, zal de DB een alfanumerieke waarde in een numeriek veld proberen te stoppen, wat niet zal lukken.

[ Voor 86% gewijzigd door whoami op 02-07-2003 13:10 ]

https://fgheysels.github.io/


  • Sn3akz
  • Registratie: November 2000
  • Laatst online: 31-01 20:37
whoami schreef op 02 July 2003 @ 13:05:
Waarom insert je het eerste veld als '' ?

Is het eerste veld misschien een autonumber veld, en wil je daarmee aangeven dat hij de volgende waarde moet nemen voor dat record?
In dat geval doe je het best zo:
code:
1
INSERT INTO tabel (VELDNAAM, VELDNAAM) VALUES ('waarde', 'waarde');

Dus, je gaat het pk-veld niet opnemen in je insert query. De databank zal dat zelf wel afhandelen.

Op de manier waarop jij het doet, zal de DB een alfanumerieke waarde in een numeriek veld proberen te stoppen, wat niet zal lukken.
Meestal wordt het ook wel met NULL gedaan, maar het is idd veel netter om hem weg te laten :)

  • dynast
  • Registratie: December 2002
  • Laatst online: 02-08-2025
Sn3akz schreef op 02 juli 2003 @ 13:11:
[...]


Meestal wordt het ook wel met NULL gedaan, maar het is idd veel netter om hem weg te laten :)
De eerste '' is bin_id en die staat op auto_increment en hoogt gewoon het id op, de tweede is ook auto_increment.

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:40
Check dan nog eens mijn post. ;)

https://fgheysels.github.io/


Verwijderd

Ik heb net even een stukje gecopy/paste naar m'n php omgeving .. en hij gaat hier volgens mij op z'n bek door `endif;' op 't einde (endif staat op regel 21):
code:
1
Parse error: parse error in /x/test.php on line 21


[ Voor 53% gewijzigd door Verwijderd op 02-07-2003 13:24 ]


  • dynast
  • Registratie: December 2002
  • Laatst online: 02-08-2025
whoami schreef op 02 July 2003 @ 13:15:
Check dan nog eens mijn post. ;)
Thanks alot, ik weet niet precies waarom het nu wel werkt, maargoed :)

  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 19-08 19:06
dynast schreef op 02 July 2003 @ 13:22:
..., ik weet niet precies waarom het nu wel werkt, maargoed :)
Omdat, zoals whoami al stelde, je dbms nu _zelf_ een waarde toekent aan het primary key veld, en niet de user zoals jij deed.
In jouw geval gaf je aan dat er in het pk veld een waarde '' geschreven moest worden, terwijl je die waarde helemaal niet zelf wilt opgeven.
Pagina: 1