2015-05-29 2 views
0

все кажется прекрасным и должно работать, но это не так, я получаю переменные, которые они, как должно быть, поэтому я не знаю, почему он не вставляет данные в мою базу данных код:Я хочу вставить данные в свою базу данных, но это не сработает

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

)); 
} 

?> 
+1

Возможно, теперь смените свой пароль – Strawberry

+0

попробуйте добавить '$ conn-> error' и проверьте точную ошибку, что такое ocuring. Благодарю. –

ответ

1

Причина в том, что для ваших POST-массивов требуются кавычки.

$vardas=$_POST['vardas']; 

и сделать то же самое для остальных.

Отчет об ошибках должен был вызвать уведомления, но вы не проверяете их.

Sidenote:

Убедитесь, что форма имеет метод POST method = "post" и что все ваши входы держать «имя» атрибут.

Ie:

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

т.д.

В том числе один для вашего условного оператора:

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

Если соответствующий вход для него не по имени, то ничего в там будет выполнить, даже после внесения этих изменений.

Используйте с ним else{ echo "No success"; }. Если он попадает в это, тогда у вас есть ошибки где-то.


Сообщения об ошибках:

Добавить error reporting в верхней части файла (ов), который поможет найти ошибки.

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 

// rest of your code 

Sidenote: Сообщения об ошибках не должно быть сделано только в постановке, и никогда производства.

Также добавьте $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); сразу после открытия соединения, что также может вызвать другие ошибки.

Ссылки:

0

Приведенные ниже клавиши будут все должны быть заключены в кавычки, как это:

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

Отсутствие котировок вокруг указанных индексов вызывает уведомления, но это все о них. PHP предполагает, что символы являются константами, не могут их найти и использовать вместо них. Изменения, предложенные в этом ответе, хотя и правильные, не устраняют проблему (они просто предотвращают запуск уведомлений). – axiac

0

На самом деле то, что " Fred -ii- "& & d0ug7a5 говорит, правда, но есть что-то дополнительно, если вы еще не видели его. `$ lentele` должен быть `$ lentele`. Иногда небольшие опечатки могут сильно потерять ваше время :)

Смежные вопросы