我想将数据插入我的数据库,但它不起作用

时间:2015-05-29 18:24:18

标签: php mysql post pdo

一切看起来都很好并且应该可以工作但是我不会得到他们应该是的变量应该是这样我不知道它为什么不在我的数据库中插入数据 代码:

  <?php

date_default_timezone_set("Europe/Vilnius"); 


if(isset($_POST['priduot'])){

$data =date("Y.m.d"); 

$vardas=$_POST[vardas];

$pavarde=$_POST[pavarde];

 $uzsakymas=$_POST[uzsakymas];

$kiekis =$_POST[kiekis];

$busena=$_POST[busena];

$dbhost = "mysql.hostinger.lt";

$dbname = "u878197685_vehub";

$dbusername = "u878197685_ryzuh";

$dbpassword = "svetaineairida";

$lentele  = "Uzsakymai";


 //the part that does not work

$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbusername,$dbpassword);

$statement = $conn->prepare("INSERT INTO `$lentele ` ( `Vardas`, `Pavarde`, `Uzsakymas`, `Kiekis`, `Uzsakymobusena`, `UzsakymoData`) 

  VALUES (:Vardas, :Pavarde, :Uzsakymas, :Kiekis, :Uzsakymobusena, :UzsakymoData)");

$statement->execute(array(

 "Vardas" => $vardas,

    "Pavarde" => $pavarde,

    "Uzsakymas" => $uzsakymas,

    "Kiekis" => $kiekis,

"Uzsakymobusena" => $busena,

"UzsakymoData" => $data
//the part that does not work

));
}

 ?>

3 个答案:

答案 0 :(得分:1)

原因是,您的POST阵列需要引号。

virtual_memory().total / 1024 / 1024 = 29741
virtual_memory().used / 1024 / 1024 = 7967
virtual_memory().active / 1024 / 1024 = 2259

              total        used        free      shared  buff/cache   available
Mem:          29741        1148       21773          16        6819       28322
Swap:             0           0           0

并为其他人做同样的事。

错误报告会触发通知,但您不会检查它们。

旁注:

确保您的表单确实有一个POST方法$vardas=$_POST['vardas']; ,并且您的所有输入都包含&#34; name&#34;属性。

即:

method = "post"

包括条件陈述的那个:

<input type="text" name="vardas">

如果相关的输入没有被命名,那么即使进行了这些更改,其中也没有任何内容会被执行。

使用if(isset($_POST['priduot'])){...} 。如果它属于那个,那么你在某处就有错误。

错误报告:

error reporting添加到文件的顶部,这有助于查找错误。

else{ echo "No success"; }

旁注:错误报告应仅在暂存时完成,而不是生产。

在打开连接后立即添加<?php error_reporting(E_ALL); ini_set('display_errors', 1); // rest of your code ,这也可能会捕获其他错误。

参考文献:

答案 1 :(得分:0)

以下键都需要用引号括起来,如下所示:

$vardas=$_POST['vardas'];
$pavarde=$_POST['pavarde'];
$uzsakymas=$_POST['uzsakymas'];
$kiekis =$_POST['kiekis'];
$busena=$_POST['busena']; 

答案 2 :(得分:0)

实际上是什么“弗雷德-ii-”&amp;&amp; d0ug7a5说的是真的,但如果你还没有看到它,还有其他的东西    `$ lentele`必须是`$ lentele`。 有时像这样的小错字可能会浪费你很多时间:))