2016-11-11 9 views
0

LAST_INSERT_ID()別名Case_IDを保存し、別のhtmlページで呼びたいと思っています。これはどうすればいいですか?PHP変数を保存してhtmlページで呼び出す

$query.= "insert into Picture (Case_Pic,Case_ID) 
      values ('" .addslashes($imagefile). "', LAST_INSERT_ID())" ; 
+0

あなたの質問をクリアしないでください。 – Karthi

+0

**危険**:[SQLインジェクション攻撃](http://bobby-tables.com)に脆弱です。 /)**あなたが[守る]必要がある(http:// s tackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php)あなた自身から。 'addslashes'は不十分です。 – Quentin

答えて

0

セッションで保存します。 次のようにIDを持っているように:

$id = '112'; 
session_start(); 
$_SESSION['case_id'] = $id; 

をして、他のHTMLページに:

<?php 
session_start(); 
//Now you can use $_SESSION['case_id'] however you want here. 
?> 

私はそれが

0

EDITに役立ちます願っています:ちょうどあなたも道を必要とするかもしれないことに気づきました最後のインサートIDを取得します。

あなたのコードからわかるように、間違っていないと、2つのクエリを実行しているように見え、前のクエリの最後の挿入IDを次のクエリに使用しています。

この場合、クエリを分けて、ケーステーブル挿入クエリの最後にmysqli_insert_idを使用する必要があります(必要な場合)。

例コード:

$query = "INSERT INTO `Case` (`Case_name`) VALUES ('".mysqli_real_escape_string($db,$case_name)."')"; $q_obj = mysqli_query($db, $query); $case_id = mysqli_insert_id($db); $query2 = "INSERT INTO `Picture` (`Case_Pic`,`Case_ID`) VALUES ('".mysqli_real_escape_string($db, $imagefile)."', '".mysqli_real_escape_string($db, $case_id)."')"; そして、あなたは、クエリ文字列パラメータを経由してHTMLページにそれを渡す必要があります: header('Location:success.html?case_id='.$case_id);

そして、あなたのHTMLページでは、クエリ文字列を取得するにはJavaScriptを使用パラメータを解析し、それらを解析してcase_idクエリ文字列パラメータを抽出します

+1

URLを使用して重要なデータをIDとして送信するという悪い習慣です。セキュリティリスクにつながる可能性があります。 – Learner

+0

合意されていますが、サーバー側のコードも適切にコーディングされている必要があります。**すべての**変数をサニタイズするベストプラクティスに従ってSQLインジェクションを防ぎ、問題なく使用できます。私は、サーバー側のコードが正しく書かれている場合は、テーブルの主キーを使用して何の問題も表示されません。これがまだ間違っている場合はお知らせください。 –

+0

はい、しかし、それはあなたが選択しているところでは気をつけて、より安全な方法で使うべきではありません。 – Learner

関連する問題