0

私はmysqliを使用して教師のユーザー名を取得しようとし、すべての値をデータベースに挿入しています。ただし問題は、データベースに何も挿入されていないことです。

エラー レポートにエラーが表示されないので、mysqli を使用してデータベースに値を挿入する際に何か間違ったことをしているだけだと思いますが、何が原因かわかりません。データベースに値を挿入していない理由について誰か教えてもらえますか?

以下はコードです:

$username="xxx";
$password="xxx";
$database="mobile_app";

  $mysqli = new mysqli("localhost", $username, $password, $database);

  /* check connection */
  if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    die();
  }

$sql = "SELECT TeacherId FROM Teacher WHERE (TeacherUsername = ?)";

$stmt=$mysqli->prepare($sql);
    // You only need to call bind_param once
$stmt->bind_param("s",$_SESSION['teacherusername']);

$stmt->execute(); 
$record = $stmt->fetch();
$teacherid = $record['TeacherId'];

if($_SERVER['REQUEST_METHOD'] == 'POST')

{

$time = str_replace(array(' Hrs ', ' Mins ', ' Secs'), array(':', ':', ''), $_SESSION['durationChosen']);

  $insertsql = "INSERT INTO Session (SessionId, SessionTime, SessionDate, SessionWeight, SessionDuration, TotalMarks, ModuleId, TeacherId, Room) 
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";

 $insert=$mysqli->prepare($insertsql);

 $insert->bind_params("sssssssss", $sessid, $_SESSION['timeChosen'], $sessdate,
                     $_SESSION['textWeight'], $time, $_SESSION['textMarks'],
                     $_SESSION['module'], $teacherid, $_SESSION['rooms']);


for ($i = 1, $n = $_SESSION['sessionNum']; $i <= $n; ++$i) {
    $sessid = $_SESSION['id'] . ($n == 1 ? '' : $i);
    $sessdate = date("Y-m-d", strtotime($_SESSION['dateChosen']));

    $insert->execute();
}

$insert->close();

}
4

1 に答える 1

0

このことを1行ずつデバッグしてみてください。

  • エラーレポートをerror_reporting(E_ALL);phpファイルまたはphpiniでerror_reporting = E_ALL設定します
  • db接続は機能しますか?
  • 使用する前にSQLクエリをエコーする
  • クエリが正しいようです。1つの値に再構築し、段階的に再構築してエラーの場所を特定します。
于 2012-06-14T12:05:52.567 に答える