经过几周试图在MYSQL数据库中的['aaaaa', 'aaaazza', 'anaaazz11a', 'anaaazza']
变量中插入数据后,我在这里问。我找到了很多form
的示例代码,而且我的提供商也检查了我的skript。他说我的INSERT INTO
有问题。
我尝试了很多,但是在点击提交后我无法在phpMyAdmin中看到任何数据,但我收到了邮件,工作正常。
也许任何人都可以在我的剧本中看到一个问题。
$sql=
<?php
if(isset($_POST["sendcopy"])){
mail($mailToCC, $subject, $textCC, $from);
}
if(isset($_POST["submit"])){
$host_name = "database.myprovider";
$database = "db_name";
$user_name = "user_name";
$password = "*****************";
$connect = mysqli_connect($host_name, $user_name, $password, $database);
if (mysqli_connect_errno())
{
echo "KEINE VERBINDUNG MÖGLICH! " . mysqli_connect_error();
}
else
{
echo "ERFOLGREICHE VERBINDUNG ZUR DATENBANK!";}
$sql= 'INSERT INTO "offen"("id", "vorname", "nachname", "email", "telefon", "geburtsjahr", "postleitzahl", "datum", "stunde", "minute", "personen", "bereich", "nachricht")
VALUES ($id, $vorname, $nachname, $email, $tel, $geburtsjahr, $plz, $datum, $stunde, $minute, $personen, $bereich, $nachricht)';
mysql_close($connect);
}
include ("reservtrue.php");
exit;
?>
来自"submit"
以下。
<form>
我希望使用德语单词作为变量,这在stackoverflow中是没有问题的。
感谢您的帮助。
修改
感谢您的建议。我仍然无法将数据从<form method="post" action="mailer.php" onsubmit="return chkFormular()" name="Formular" id="formTemplate">
<table id="reservtable">
.
.
.
.
<input type="submit" name="submit" value="Reservieren" id="submit">
</td>
</tr>
</table>
</form>
插入到MYSQL中。我改变了我的代码。如果我将代码粘贴到phpMyAdmin - SQL中,它就可以了!但是,如果我将我的脚本加载到服务器并在Web中测试我的表单。
这是我的新代码:
form
问题已解决
问题通过以下代码解决:
<?php
error_reporting(E_ALL ^ E_NOTICE);
if(isset($_POST["submit"])){
$vorname = $_POST["Vorname"];
$nachname = $_POST["Nachname"];
$email = $_POST["Mailadresse"];
$tel = $_POST["Telefonnummer"];
$geburtsjahr = $_POST["Geburtsjahr"];
$plz = $_POST["PLZ"];
$datum = $_POST["Datum"];
$stunde = $_POST["Stunde"];
$minute = $_POST["Minute"];
$personen = $_POST["Personen"];
$bereich = $_POST["Bereich"];
$nachricht = $_POST["Nachricht"];
$host_name = "database.myprovider";
$database = "db_name";
$user_name = "user_name";
$password = "*****************";
$connect = mysqli_connect($host_name, $user_name, $password, $database);
if (mysqli_connect_errno())
{
echo "KEINE VERBINDUNG MÖGLICH! " . mysqli_connect_error();
}
else
{
echo "ERFOLGREICHE VERBINDUNG ZUR DATENBANK!";}
$insert = ("INSERT INTO offen(vorname, nachname, email, telefon, geburtsjahr, postleitzahl, datum, stunde, minute, personen, bereich, nachricht)
VALUES ('".$id."', '".$vorname."', '".$nachname."', '".$email."', '".$tel."', '".$geburtsjahr."', '".$plz."', '".$datum."', '".$stunde."', '".$minute."', '".$personen."', '".$bereich2."', '".$nachricht."')");
mysqli_query($insert, $sql);
}
include ("reservtrue.php");
exit;
?>
谢谢你们的信息,激励和提示!我在过去的两天里学到了很多东西。
答案 0 :(得分:0)
<html>
<head>
<script>
function setClick(){
var tL = document.querySelectorAll("img[src*='addressbook.gif']"); //Getting all images which src contains addressbook.gif
for(var i=0, j=tL.length;i<j; i++){
//Just to visualize
tL[i].style.outline = '1px solid red';
//We actually click on the parent (a) and not the img so we set the click on the a tag
//The other tags will keep your normal onclick settings.
tL[i].parentNode.onclick = function(){
//Put your special script for those cases.
//adjustPeoplePicker() //Some version of this.
return false
}
}
}
</script>
</head>
<body onload = 'setClick()'>
<a href = 'https://www.google.com'><img alt = 'Browse' src = 'https://www.google.com/images/srpr/logo11w.png' /></a>
<a href = 'https://www.google.com'><img alt = 'Browse' src = 'https://www.google.com/images/srpr/logo11w.png?test=addressbook.gif' /></a>
<a href = 'https://www.google.com'><img alt = 'Browse' src = 'https://www.google.com/images/srpr/logo11w.png' /></a>
</body>
</html>
在哪里?在mysql_query($sql);
之后添加此内容。您的$sql
查询需要$sql
才能运行它。如果你添加了它仍然不起作用,我建议你去phpmyadmin的sql选项卡。使用一些随机值粘贴您的查询。这就是我检查我的查询是否有效的方法。
答案 1 :(得分:0)
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<style type="text/css">
<!--
body {background-color:black; overflow:none;}
-->
@media (min-width:641px) {
body {
background:white;background-image:url('http://lib.store.yahoo.net/lib/oberers-flowers/Home-Background-2013a.gif');}
div.desktop {visibility:hidden;
}
}
</style>
</head>
<body>
<div class="desktop" style="position:absolute;top:0px;left:0px; z-index:1">
<img border="0" src="http://lib.store.yahoo.net/lib/oberers-flowers/mobile1.jpg" width="100%" height=auto>
<img border="0" src="http://lib.store.yahoo.net/lib/oberers-flowers/mobile2.jpg" width=100% height=auto>
<img border="0" src="http://lib.store.yahoo.net/lib/oberers-flowers/mobile3.jpg" width=100% height=auto>
</div>
</body>
</html>
echo "ERFOLGREICHE VERBINDUNG ZUR DATENBANK!";}
$sql= 'INSERT INTO offen (id, vorname, nachname, email, telefon, geburtsjahr, postleitzahl, datum, stunde, minute, personen, bereich, nachricht)
VALUES ('$id', '$vorname', '$nachname', '$email', '$tel', '$geburtsjahr', '$plz', '$datum', '$stunde', '$minute', '$personen', '$bereich', '$nachricht')';
mysqli_query($connect,$sql); //this line was missing from your code.
mysqli_close($connect); //updated to make it MySQLi
实际上完成了应用您在mysqli_query($connect,$sql)
查询中定义的SQL的工作。
注意强>
您的脚本中同时包含 MySQLi 和 MySQL 函数,您必须只使用一个函数,所有SQL函数必须是MySQL < em>我 。
我建议您更改SQL查询以使用单引号和反引号。表名$sql
和列名称不需要在引号中。您插入的变量确实需要引号,如我所示。
您(通常)不需要offen
,因为一旦PHP到达页面末尾,SQL连接就会自动关闭。
答案 2 :(得分:0)
变量名称不需要引号,但参数不需要引号。您还缺少执行SQL语句的代码。
echo "ERFOLGREICHE VERBINDUNG ZUR DATENBANK!";}
$sql= "INSERT INTO offen(id, vorname, nachname, email, telefon, geburtsjahr, postleitzahl, datum, stunde, minute, personen, bereich, nachricht)
VALUES ($id, '$vorname', '$nachname', '$email', '$tel', '$geburtsjahr', '$plz', '$datum', '$stunde', '$minute', '$personen', '$bereich', '$nachricht')";
if ($connect->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $connect->error;
}
mysql_close($connect);
}
答案 3 :(得分:0)
看来你对$insert
中的变量引用有一些可以理解的混淆。您可能对如何处理数据类型有疑问。
以下是需要注意的一些事项
""
中换行查询,但为个别变量保存''
(必要时,如下所示)。例如,只需将变量包裹一次,如下所示:.'$vorname'.' if the variable you are inputting is a string. If it is an integer (INT variable type), leave the quotes off, e.g.
$ number`。换句话说,输入字符串为字符串,INT为int。$id
似乎是一个。如果是这样,则语法向后。只需将其输入NULL
或将其从插入中删除,如下所示:insert into tablename (id, vorname) values (NULL, '$vorname')
mysqli_real_escape_string()
或,而不是通过所有这些,您可以使用预备语句,这将以更清洁的方式处理该信息,但也会保护您的代码免受SQL注入。
以下是使用mysqli
:
以对象身份连接:
$connect = new mysqli($host_name, $user_name, $password, $database);
然后将查询提供给对象并绑定参数。在本节中,“s”是一个字符串,“i”是一个整数。
$insert = $connect->prepare("INSERT INTO offen(id, vorname, nachname, email)
VALUES (NULL, ?,?,?");
$insert->bind_param("sss", $vorname, $nachname, $email);
$insert->execute();
$insert->close();
如果您正确命名变量,这应该可行。