PHP не отправляет данные в phpmyadmin

Я создаю веб-сайт и хочу отправить данные в MySQL, но он не отправляет.

Я могу дать более подробную информацию, если это необходимо.

Полный код https://pastebin.com/JW5UUQbt

if (isset($_POST['submit2']))
{
$pid=intval($_GET['pkgid']);
$useremail=$_SESSION['login'];
$date=$_POST['date'];
$time=$_POST['time'];
$comment=$_POST['comment'];
$status=0;
$sql = "INSERT INTO tblbooking (PackageId, UserEmail, BDate, BTime, Comment, status) VALUES (:pid, :useremail , :bdate , :btime , :comment , :status);";
$query = $dbh->prepare($sql);
$query->bindParam(':pid',$pid,PDO::PARAM_STR);
$query->bindParam(':useremail',$useremail,PDO::PARAM_STR);
$query->bindParam(':bdate',$date,PDO::PARAM_STR);
$query->bindParam(':btime',$time,PDO::PARAM_STR);
$query->bindParam(':comment',$comment,PDO::PARAM_STR);
$query->bindParam(':status',$status,PDO::PARAM_STR);
$query->execute();
?>
<form name = "book" method = "post">
                <label class = "inputLabel">Date</label>
                <input type = "text" name = "date" required = "">
            <div class = "bnr-right">
                <label class = "inputLabel">Time</label>
                <input type = "text" name = "time" required = "">
            </div>
                        <label class = "inputLabel">Comment</label>
                        <input class = "special" type = "text" name = "comment">
                    </li>
                    <?php if ($_SESSION['login'])
                    {?>
                        <li class = "spe" align = "center">
                    <button type = "submit" name = "submit2" class = "btn-primary btn">Book</button>
                        </li>
                        <?php } else {?>
                            <li class = "sigi" align = "center" style = "margin-top: 1%">
                            <a href = "#" data-toggle = "modal" data-target = "#myModal4" class = "btn-primary btn" > Book</a></li>
                            <?php } ?>
            </div>

        </div>
        </form>
<?php }} ?>

Журналы - ваш друг. Они, как правило, говорят вам, что не работает и где именно. В противном случае мы просто тратим время на догадки. Что конкретно не работает?

ficuscr 26.06.2019 22:40

phpMyAdmin — это инструмент администрирования MySQL, написанный на PHP, а не сама база данных. Вероятно, вы используете MySQL или MariaDB в качестве БД.

Dharman 26.06.2019 22:44

После отправки данные не достигают базы данных

Dominik Tarasewicz 26.06.2019 22:45

Возможный дубликат Мое заявление PDO не работает

Dharman 26.06.2019 22:47

Вы можете попробовать систему отладки компьютерного программного обеспечения, известную как отладка резиновой утки en.wikipedia.org/wiki/Rubber_duck_debugging.

raw-bin hood 26.06.2019 23:06

Вы выполнили базовую отладку, проверили используемые вами переменные, например: echo $pid;, echo $useremail;, echo $date;, echo $time;, echo $comment;, посмотрите, что они содержат?

jibsteroos 26.06.2019 23:28

Да, prntscr.com/o75ef8

Dominik Tarasewicz 26.06.2019 23:41

print_r($dbh->errorInfo()); показывает Array ( [0] => 00000 [1] => [2] => )

Dominik Tarasewicz 26.06.2019 23:44
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
8
363
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я немного упростил код (включая жесткое кодирование значений $useremail и $pid), чтобы определить, что может быть причиной проблемы, и это сработало с первого раза:

<?php 
  // DB credentials.
  define('DB_HOST','localhost');
  define('DB_USER','root');
  define('DB_PASS','');
  define('DB_NAME','test');
  // Establish database connection.
 try
  {
    $dbh = new PDO("mysql:host = ".DB_HOST.";port=3307;dbname = ".DB_NAME,DB_USER, DB_PASS,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
  }
 catch (PDOException $e)
  {
      exit("Error: " . $e->getMessage());  
   }
?>

<?php

 if (isset($_POST['submit2']))
  {
    $pid=6;
    $useremail= "[email protected]";
    $date=$_POST['date'];
    $time=$_POST['time'];
    $comment=$_POST['comment'];
    $status=0;
    $sql = "INSERT INTO tblbooking (PackageId, UserEmail, BDate, BTime, Comment, status) VALUES (:pid, :useremail , :bdate , :btime , :comment , :status);";
    $query = $dbh->prepare($sql);
    $query->bindParam(':pid',$pid,PDO::PARAM_STR);
    $query->bindParam(':useremail',$useremail,PDO::PARAM_STR);
    $query->bindParam(':bdate',$date,PDO::PARAM_STR);
    $query->bindParam(':btime',$time,PDO::PARAM_STR);
    $query->bindParam(':comment',$comment,PDO::PARAM_STR);
    $query->bindParam(':status',$status,PDO::PARAM_STR);
    $query->execute();
  }
?>

<form name = "book" method = "post">
     <label class = "inputLabel">Date</label>
     <input type = "text" name = "date" required = "">
     <div class = "bnr-right">
        <label class = "inputLabel">Time</label>
        <input type = "text" name = "time" required = "">
     </div>
     <label class = "inputLabel">Comment</label>
     <input class = "special" type = "text" name = "comment">
      <button type = "submit" name = "submit2" class = "btn-primary btn">Book</button>          
 </form>
Fatal error: Uncaught Error: Call to a member function prepare() on null in X:\OSPanel\domains\kajaki2.com\package-details.php:12 Stack trace: #0 {main} thrown in X:\OSPanel\domains\kajaki2.com\package-details.php on line 12 попробовал этот stackoverflow.com/questions/28592400/…, но не работает
Dominik Tarasewicz 27.06.2019 00:06

Я отредактировал код, включив в него детали подключения к базе данных, которые я использовал, единственное отличие от кода в pastebin — это имя базы данных — test, и я включил номер порта в соединение, поскольку у меня более одного MySQL, работающего локально.

Johanne 27.06.2019 00:21

И все же вопросы остаются

Dominik Tarasewicz 27.06.2019 00:54

Какие у вас проблемы?

Johanne 27.06.2019 01:01

Значения не появились в БД

Dominik Tarasewicz 27.06.2019 01:17

Убедитесь, что вы используете правильные имена базы данных и таблиц.

Johanne 27.06.2019 01:19
prntscr.com/o76h4q как выглядит моя БД
Dominik Tarasewicz 27.06.2019 01:28

Ничего не вставляется в столбец UserNumber в запросе, и для него установлено значение NOT NULL, поэтому значение должно быть вставлено или изменено на NULL.

Johanne 27.06.2019 01:34

Удаление столбца UserNumber исправлено, что за глупая ошибка

Dominik Tarasewicz 27.06.2019 01:42

С кем не бывает :)

Johanne 27.06.2019 01:50

Другие вопросы по теме