0

セッションリストがと呼ばれるセッション配列に格納されている買い物かごを設定しました['list']。セッションデータ(リストアイテムに関する情報)を抽出して、データベーステーブルに挿入したいと思います。

session_start();
Print_r ($_SESSION['list']);

if ( !isset($_SESSION['username']) && ($_SESSION['list']) )
{
   header("Location:index.php");
   exit();
}

結果:

Array([1] => Array([ISBN] => 0923184232 [bookname] => asodiaso [author] => lolstan [price] => 5.99)[2] => Array([ISBN] => 6677889900 [bookname] =>テンプラーコード[作成者]=>CMPalov[価格]=>18.99))

^この情報をテーブルに挿入したいです!:)

これを使用することで、配列に含まれるセッション変数を出力できますが、変数を抽出して別のデータベーステーブルに挿入する必要があります。それらを抽出する方法がわからないので、何か提案はありますか?

私はデータベーステーブル(MYSQL)に情報を挿入する方法に精通しています。

insertメソッドは次のようになります。

$query = "INSERT INTO orderhistory VALUES ('','".$ISBN."','".$bookname."','".$author."','".$price."', '')";

現時点では、私のaddtobasket.phpは次のようになっています。

`

require "dbconn.php";

//Connects to database
$connect = mysql_connect($host, $user, $password )
or die ("Hey loser, check your server connection.");

//Make sure we are using the right database
mysql_select_db($database);

$ISBN = $_SESSION['list']['ISBN'];
$bookname = $_SESSION['list']['bookname'];
$author = $_SESSION['list']['author'];
$price = $_SESSION['list']['price'];

// Set up the query using the values that were passed via the URL from the form
$query = "INSERT INTO orderhistory 
VALUES('','".$ISBN."','".$bookname."','".$author."','".$price."', '')"; 

はい、私はそれが間違っていることを知っています!:((

4

3 に答える 3

0
$query = "INSERT INTO orderhistory
VALUES('','".$ISBN."','".$bookname."','".$author."','".$price."', '')";

する必要があります:

$query = "INSERT INTO orderhistory
VALUES('', '$ISBN', '$bookname', '$author', '$price')"

あまりにも多く、不要な引用符があります

''DBでNULLとして設定されている限り、フィールドにファイナルは必要ありません(これは必要ありません)。date挿入するたびに空白のフィールドを使用することを期待している場合はNULL、データベースでそれを作成することをお勧めします

于 2012-04-17T02:15:29.297 に答える
0

変数の内容をデータベースフィールドにダンプするだけの場合は、serialize()またはjson_encode()を使用して、配列を簡単に変換できる文字列に変換できます。

ちなみに、基本的なSQLインジェクションの問題を回避するために、PDOとプリペアドステートメントに切り替えることを強くお勧めします。

于 2012-04-17T01:38:21.703 に答える
0

たぶん、この種のコードはあなたを助けるでしょう:

$con = mysql_connect('myserver', 'myusername', 'mypassword') or die('Error: ' . mysql_error());
mysql_select_db("mydatabase", $con);
mysql_query("SET NAMES 'utf8'", $con);

$insert_query = "UPDATE mytable SET field='" . $_SESSION["value"] . "' WHERE id='" . $_SESSION["id"] . "'";

$result = mysql_query($insert_query) or die(mysql_error());
mysql_close($con);
于 2012-04-17T01:40:08.967 に答える