1

$_SESSION 変数の値を、自動インクリメント主キーを持つデータベース テーブルのレコードに書き込めないようです。フォーラムの多くの場所を調べましたが、問題の解決策が見つかりません。自動インクリメントを機能させるには何かを追加する必要があると思いますが、よくわかりません。私が使用しているコードを以下に示します。私は何を間違っていますか?

<?php

// SESSION FILE
include ("sessionstart.inc");

echo "<html>
    <head><title>Reports-SESSION</title></head>
    <body>";

include ("misc.inc"); //THIS SETS $cxn AS MY VARIABLE TO CONNECT TO THE DATABASE

// SELECT THE DATABASE TO USE
mysqli_select_db($cxn,"carregistration") or die(mysqli_error($cxn));

// SET TEST VALUES IN $_SESSION VARIABLE
$_SESSION['OwnerCarIdentifier']='6Gh7J8';
$_SESSION['CarType']='station car';

// TEST TO SEE WHAT VALUES ARE NOW IN $_SESSION
foreach ($_SESSION as $field => $value)
{
    echo "$field = $value<br />\n";
}
// THIS CONFIRMS THAT THE TWO $_SESSION VALUES ARE THERE AND AS SET ABOVE

echo "<br />";

// NOW WRITE VALUES FROM $_SESSION INTO A NEW RECORD IN THE DATABASE
mysqli_query($cxn,"INSERT INTO 'car' (OwnerCarIdentifier,CarType) VALUES ('$_SESSION[OwnerCarIdentifier]','$_SESSION[CarType]')");

//ERROR CHECKING TO SEE IF THE DATA WERE SUCCESSFULLY RECEIVED BY THE DATABASE OR NOT.
if (mysqli_connect_errno()) {
echo "The connection with the database failed." . mysqli_connect_error();
exit();
}

// CLOSE THE RECORD
mysqli_close($cxn);

//DESTROY THE SESSION: THIS STATEMENT SHOULD APPEAR AT THE VERY END WHEN YOU HAVE STORED ALL THE FIELDS FOR A ROW IN THE DATABASE
session_destroy();


?>
</body>
</html>
4

4 に答える 4

1

これを試して。

mysqli_query($cxn,"INSERT INTO 'car' (`OwnerCarIdentifier`,`CarType`) VALUES ('".$_SESSION['OwnerCarIdentifier']."','".$_SESSION['CarType']."')");

これで正常に実行されます。

于 2013-04-09T11:48:27.540 に答える
0

別の方法:

     $sql = mysqli_query($cxn,"INSERT INTO 'car' (OwnerCarIdentifier,CarType) VALUES ('{$_SESSION[OwnerCarIdentifier]}','{$_SESSION[CarType]}')");

     if(mysqli_affected_rows($cxn) === 0)
     {
        eixt ("Error on insert");
     }
于 2013-11-26T13:18:43.897 に答える