简体   繁体   中英

insert into sql database using php

I have been working on adding data to my sql database i have tryed many different ways of doing this but am still gettting the same errors.

Notice: Undefined index: ModuleId in N:\\ftp\\compc\\d11os\\Project\\addModule.php on line 63

Notice: Undefined index: Title in N:\\ftp\\compc\\d11os\\Project\\addModule.php on line 64

Notice: Undefined index: CreditLevel in N:\\ftp\\compc\\d11os\\Project\\addModule.php on line 65

Notice: Undefined index: CreditPoints in N:\\ftp\\compc\\d11os\\Project\\addModule.php on line 66

Notice: Undefined index: Status in N:\\ftp\\compc\\d11os\\Project\\addModule.php on line 67

what am i doing wring i know it probly somthing smalll but i cant see it and really need help?

here is the code i am using

 <?php
$con=mysqli_connect("localhost","ROOT","ROOT","ROOTdb");
// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

// escape variables for security
$ModuleId = mysqli_real_escape_string($con, $_POST['ModuleId']);
$Title = mysqli_real_escape_string($con, $_POST['Title']);
$CreditLevel = mysqli_real_escape_string($con, $_POST['CreditLevel']);
$CreditPoints = mysqli_real_escape_string($con, $_POST['CreditPoints']);
$Status = mysqli_real_escape_string($con, $_POST['Status']);
$Award = mysqli_real_escape_string($con, $_POST['Award']);


$sql="INSERT INTO module(ModuleId, Title, CreditLevel, CreditPoints, Status, Award)
VALUES ('$ModuleId', '$Title', '$CreditLevel' ,'$CreditPoints', '$Status', '$Award')";

if (!mysqli_query($con,$sql)) {
  die('Error: ' . mysqli_error($con));
}
echo "1 record added";

mysqli_close($con);
?>

Html code im using

<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">

        <img src="logo.jpg" alt="University of Ulster Logo" width="332" height="132">

    <h1 style="font-family:Bell MT;color:blue;font-size:28px;">Add a New Module.</h1>

</head>
 <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

 <table border="0">

  <tr><td>Module:</td><td>

 <input type="text" name="name" maxlength="60" required>

 </td></tr>

  <tr><td>Title:</td><td>

 <input type="text" name="telephoneNo" maxlength="60" required>

 </td></tr>

 <tr><td>CreditLevel:</td><td>

 <input type="text" name="email" maxlength="60" required>

 </td></tr>

 <tr><td>CreditPoints:</td><td>

 <input type="text" name="course" maxlength="60" required>

 </td></tr>

 <tr><td>Status:</td><td>

 <input type="text" name="Staus" maxlength="100" required>

 </td></tr>

  <tr><td>Award:</td><td>

 <input type="text" name="Award" maxlength="100" required>

 </td></tr>

 <td colspan="2" style="text-align:center">
<input type="submit" name='submit' value='Submit'>

 </form>

The issue is appearing because the variables you are using are not defined in the $_POST array.

Try something like

if (isset($_POST['ModuleId']))
{
    $ModuleId = mysqli_real_escape_string($con, $_POST['ModuleId']);
} else {
    $ModuleId = -1; // Default value or Error flag
    echo "Module Id is not specified.";
}

and so on for your other variables.

It is probably a good idea to check that all the values are present, prior to insert. For example,

if ($ModuleId != -1) {
    $sql="INSERT INTO module(ModuleId, Title, CreditLevel, CreditPoints, Status, Award)
    VALUES ('$ModuleId', '$Title', '$CreditLevel' ,'$CreditPoints', '$Status', '$Award')";

    if (!mysqli_query($con,$sql)) {
      die('Error: ' . mysqli_error($con));
    }
    echo "1 record added";
}

mysqli_close($con);

// EDIT

You issue seems to be stemming from not checking if the page has done a post back. When the page is first loaded, it will try to insert data - but there is no data to insert as you have not submitted the form.

Wrap your php code with a simple check like so

<?php
if (isset($_POST['submit']))
{
    $con=mysqli_connect("localhost","ROOT","ROOT","ROOTdb");
    // Check connection
    if (mysqli_connect_errno()) {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    // escape variables for security
    $ModuleId = mysqli_real_escape_string($con, $_POST['ModuleId']);
    $Title = mysqli_real_escape_string($con, $_POST['Title']);
    $CreditLevel = mysqli_real_escape_string($con, $_POST['CreditLevel']);
    $CreditPoints = mysqli_real_escape_string($con, $_POST['CreditPoints']);
    $Status = mysqli_real_escape_string($con, $_POST['Status']);
    $Award = mysqli_real_escape_string($con, $_POST['Award']);


    $sql="INSERT INTO module(ModuleId, Title, CreditLevel, CreditPoints, Status, Award)
        VALUES ('$ModuleId', '$Title', '$CreditLevel' ,'$CreditPoints', '$Status', '$Award')";

    if (!mysqli_query($con,$sql)) {
      die('Error: ' . mysqli_error($con));
    }
    echo "1 record added";

    mysqli_close($con);
}
?>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM