[英]Can't store data in Database(PHP, MySQL)
昨天我花了将近4个小时来修复此php代码。.我是php的初学者,所以我没有经验来查找此代码中的错误。
.php没有给我任何错误,我在开始时也写了这两行:
error_reporting(E_ALL | E_STRICT);
´
ini_set('display_errors', TRUE);
这是我的PHP代码:
//Variablen zuweisen
$name = filter_input(INPUT_POST, 'name');
$email = filter_input(INPUT_POST, 'email');
$betreff = filter_input(INPUT_POST, 'betreff');
$message = filter_input(INPUT_POST, 'message');
/*if (($vorname == "") OR ($nachname == "") OR($email == "")) {
echo "Fehler: Eintrag unvollständig.";
die;
}*/
//Verbindung herstellen
$datenbank = mysql_connect("*******", "****", "*****") or die ("Verbindung fehlgeschlagen: ".mysql_error());
$verbunden = mysql_select_db("4109932db1") or die ("Datenbank nicht gefunden oder fehlerhaft");
//Daten in DB speichern
$sql_befehl = mysql_query("INSERT INTO Contact_Requests (Name,Mail,Betreff,Message) VALUES ($name, $email, $betreff, $message");
if($sql_befehl)
{ echo "Ihr Eintrag wurde hinzugefügt."; }
//Verbindung beenden
mysql_close($datenbank);
这是我的html代码,我有一个公式编写器,这应该将数据发送到我的php文件(insert.php)
<form method="post" action="insert.php">
<table>
<tr>
<td>Name:*</td><td><input type="text" value="Name" id="name" onfocus="nameDel();" onblur="nameSet();" name="name" ></td>
</tr>
<tr>
<td>E-Mail:*</td><td><input type="email" value="E-Mail" id="email" onfocus="emailDel();" onblur="emailSet();" name="email"></td>
</tr>
<tr>
<td>Betreff:*</td><td><input type="text" value="Grund der Nachricht" id="regard" onfocus="regardDel();" onblur="regardSet();" name="betreff"></td>
</tr>
</table>
<p>
Nachricht:*<br><textarea cols="50" rows="10" id="msg" onfocus="msgDel();" onblur="msgSet();" name="message">Deine Nachricht</textarea>
</p>
<p>
<input type="submit" value="Senden" id="send" onclick="sendContact();">
</p>
</form>
这部分是受影响的:
VALUES ($name, $email, $betreff, $message")
变量需要用引号引起来:
VALUES ('$name', '$email', '$betreff', '$message')
末尾的双引号位置不正确,因为您忘记了右括号)
(Name,Mail,Betreff,Message) VALUES ($name, $email, $betreff, $message");
^
应该是
VALUES ('$name', '$email', '$betreff', '$message')");
受影响的行现在应如下所示:
$sql_befehl = mysql_query("INSERT INTO Contact_Requests (Name,Mail,Betreff,Message) VALUES ('$name', '$email', '$betreff', '$message')");
旁注:您当前的代码可以进行SQL注入 。 使用mysqli_*
函数。 (我建议您将其与预处理语句或PDO一起使用 )
mysql_*
函数已被弃用,并将从以后的PHP版本中删除。
由于您才刚刚开始进行编码:
这里有一些关于准备好的语句的教程,您可以研究和尝试:
以下是有关PDO的一些教程:
不要使用该代码。 很老了 与我或其他人一起尝试使用pdo。
为什么在JavaScript上使用sendContact()操作? 那不是PHP。 您正在使用ajax吗? 如果不是,您必须知道单击时是指js而不是php。
我不知道您做了什么,但是这里有一个PHP代码示例,您可以用来在数据库中插入数据。
<?php /*insert.php*/
try {
$database_connection = new PDO('mysql:host='. $dbhost .';dbname='. $dbname . ';charset=utf8', $dbuser, DB_PASS);
} catch (PDOException $e) {
echo $e->getMessage();
}
$database_connection->prepare("INSERT into db_name (add, ghj, qwe) VALUES (:value1, :value2, :value3"); //and so on
$database_connection->bind(":value1", $value, PDO::PARAM_vartype); //vartype is the variable type (integer-int...)
/ 其余的值 /
$database_connection->execute();
?>
该行最有可能出现问题
$sql_befehl = mysql_query("INSERT INTO Contact_Requests (Name,Mail,Betreff,Message) VALUES ($name, $email, $betreff, $message");
它应该是
$sql_befehl = mysql_query("INSERT INTO Contact_Requests (Name,Mail,Betreff,Message) VALUES ('$name', '$email', '$betreff', '$message')");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.