为什么我的代码不会在我的数据库中插入值?

时间:2012-06-21 15:13:41

标签: php insert-into

我正在忙于课程的分配,我无法找出问题所在。我唯一知道的是它在插入部分。连接是正确的。当我显示变量时,您可以看到放在输入字段中的单词。但它们仍然不在数据库中。

之前我使用过这段代码并且它有效但我不明白为什么它现在不起作用。谁能帮帮我吗?以下是我的代码。

感谢您试图帮助我!!

<?php

// Open connectie naar de database
$link =  mysql_connect('localhost', 'root', 'root'); // maakt de connectie met de databases (mamp/wamp)
if (!$link) {
    die('Geen connectie ' . mysql_error()); // verbreekt de verbinding en laat de error zien
}

$db_selected = mysql_select_db('voorbeeld', $link); // maakt connectie het database "voorbeeld"
if (!$db_selected) {
    die ('Kan database niet selecteren : ' . mysql_error());// verbreekt de verbinding en laat de error zien
}

if ($_POST['submit'] == 'Verzenden') {

  $naam = $_POST['naam'];
  $boodschap = $_POST['boodschap'];

  $datum = date("y-m-d");  

  // Bericht opslaan
  $query2 = "INSERT INTO gastenboek (ID, naam, boodschap, datum) 
        VALUES(NULL, '$naam', '$boodschap', '$datum')";
  $result = mysql_query($query2);

  if (mysql_affected_rows() == 1) {
     $success_msg = '<P>Uw bericht is geplaatst.</P>';

  } else {
    error_log(mysql_error());
    $success_msg = '<P>Helaas, er ging iets mis.</P>';
  }

}



$thispage = $_SERVER['PHP_SELF'];
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />


<?php
$form_page = <<< EOFORMPAGE
</head>

<body>

<H1>Uw bericht</H1>

$datum
$boodschap
$success_msg

<form method="POST" action="$thispage">

Uw naam:<br/>
<input type="text" SIZE="40" name="naam" value="$naam"><br/><br/>
Uw bericht:<br/>
<textarea name="boodschap" rows=10 cols=50>$boodschap</textarea><br/><br/>
<input type="submit" name="submit" value="Verzenden">
</form>


<a href="gastenboek.php"><input type="button" name="gastenboek" value="Gastenboek"></a>

</body>
</html>

EOFORMPAGE;
echo $form_page;
?>

2 个答案:

答案 0 :(得分:2)

(来自我的评论)

您似乎正在尝试将 NULL 插入ID字段。如果该列使用默认值或种子/递增值,则可以省略它:

$query2 = "INSERT INTO gastenboek (naam, boodschap, datum) 
           VALUES('$naam', '$boodschap', '$datum')";

,虽然它只是一项家庭作业,但是熟悉安全漏洞是一个好主意,而不是{{3 }}。我对此很熟悉:

sanitizing user input

答案 1 :(得分:0)

从ID中删除NULL,因为它可能是您的主键,或者您可能已对其应用了自动增量。