php - How to insert into table which contain foreign key -
i'm newbie, gotta problems, cannot update table upload since insert foreign key table request in there can me?
table request: id_request; primary key subjek; email; reportto; pelaksana; isi; table upload: id_upload; primary key id_request; foreign key filename; filetype; filesize; filedata;
if wanna create new request, create record in table request, insert data table request, insert id_request in table upload, fill in last_insert_id
in same time, after insert id_request in table upload, insert attachment using query insert or update query there error
the error looking :
warning: mysql_query() [function.mysql-query]: mysql server has gone away in c:\wamp\www\beta\insert.php on line 32
warning: mysql_query() [function.mysql-query]: error reading result set's header in c:\wamp\www\beta\insert.php on line 32
this line 32 mysql_query($up)or die('error upload file');
this listing code
<?php include('config.php'); session_start(); $jenis = $_post['jenis']; $subjek = $_post['subject']; $username = $_session['username']; $email = $_session['email']; $reportto = $_session['reportto']; $pelaksana = $_post['pelaksana']; $ket = $_post['isi']; $uploaddir = 'attach/'; $filedata = addslashes(fread(fopen($_files['uploadfile']['tmp_name'], 'r'), $_files['uploadfile']['size'])); $filetype = $_files['uploadfile']['type']; $filesize = $_files['uploadfile']['size']; $filename = $_files['uploadfile']['name']; $query = "insert request (waktu, jenis_request, subject, customer, isi, pelaksana) values (now(), '".$jenis."', '".$subjek."', '".$username."', '".$ket."', '".$pelaksana."')"; mysql_query($query)or die('error, insert query failed'); $ff = mysql_query("insert upload (id_request) select id_request request id_request = last_insert_id()"); $up = "update upload set deskripsi = '".$subjek."' , filetype = '".$filetype."', filename = '".$filename."', filedata = '".$filedata."', filesize = '".$filesize."' id_request = last_insert_id()"; mysql_query($up)or die('error upload file'); $uploadfile = $uploaddir . $filename; if (move_uploaded_file($_files['uploadfile']['tmp_name'], $uploadfile)) { echo "file telah diupload\n"; echo '$filename\n'; // header("location: home.php"); } else { echo "file gagal diupload"; } ?>
first of all, remember sanitize data! code vulnerable sql injection. insert id, this
$sql = "insert ..."; $result = mysql_query($sql); $new_row_id = mysql_insert_id();
in code, not open mysql connection, choose db, etc. if you're not doing in included config.php file, that's causing error.
edit:
i couldn't understand script since seems in language, came with
<?php include('config.php'); session_start(); //filter data $jenis = filter_var($_post['jenis'], filter_sanitize_string); $subjek = filter_var($_post['subject'], filter_sanitize_string); $pelaksana = filter_var($_post['pelaksana'], filter_sanitize_string); $ket = filter_var($_post['isi'], filter_sanitize_string); $username = $_session['username']; $email = $_session['email']; $reportto = $_session['reportto']; $uploaddir = 'attach/'; $filedata = addslashes(fread(fopen($_files['uploadfile']['tmp_name'], 'r'), $_files['uploadfile']['size'])); $filetype = $_files['uploadfile']['type']; $filesize = $_files['uploadfile']['size']; $filename = $_files['uploadfile']['name']; $sql = "insert request (waktu, jenis_request, subject, customer, isi, pelaksana) values (now(), '{$jenis}', '{$subjek}', '{$username}', '{$ket}', '{$pelaksana}')"; $result = mysql_query($sql); $id_inserted_request = mysql_insert_id(); $sql = mysql_query("insert upload (deskripsi, filetype, filename, filedata, filesize, id_request) values('{$subjek}', '{$filetype}', '{$filename}', '{$filedata}', '{$filedata}', '{$filesize}', '{$id_inserted_request}') "); mysql_query($sql) $uploadfile = $uploaddir . $filename; if (move_uploaded_file($_files['uploadfile']['tmp_name'], $uploadfile)) { echo "file telah diupload\n"; echo "{$filename}\n"; // header("location: home.php"); } else { echo "file gagal diupload"; } ?>
Comments
Post a Comment