0

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

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

谢谢你试图帮助我!!

<?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;
?>
4

2 回答 2

2

(来自我的评论)

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

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

此外,即使这只是一项家庭作业,熟悉由于不清理用户输入而暴露的安全漏洞也是一个好主意。我会熟悉这个:

http://php.net/manual/en/security.database.sql-injection.php

于 2012-06-21T15:35:24.290 回答
0

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

于 2012-06-21T15:38:09.960 回答