Не могу добавить данные в БД(MySQL) через PDO

127
30 августа 2019, 09:40

Помогите, пожалуйста. я новичок, только-только изучаю PHP и не могу добавить данные (которые содержится внутри form) в БД через PDO.. вроде много чего пробовал, ошибку не выдает, но и в базу не добавляются.. Буду очень благодарен..

вот мой код:

<?  
    require_once('db/db.php'); //Подключение к базе
        if(isset($_POST['add'])){
            $articles     = $_POST['textview'];
            $tags         = $_POST['tags'];
            $article_tags = $_POST['textarea'];
      function createArticles($articles, $tags, $article_tags){
        global $pdo;
        $sql = "INSERT INTO tables(articles, tags, article_tags) VALUES (:articles, :tags, :article_tags)";
        $stmt = $pdo->prepare($sql);
        $stmt->bindParam(':articles', $articles, PDO::PARAM_STR);
        $stmt->bindParam(':tags', $tags, PDO::PARAM_STR);
        $stmt->bindParam(':article_tags', $article_tags, PDO::PARAM_STR);
        $stmt->execute();
        return true;
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERMODE_EXCEPTION);
      }
    }
?>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Add articles</title>
        <link rel="stylesheet" href="bootstrap-4.2.1-dist/css/bootstrap.min.css">
        <link rel="stylesheet" href="add_articles.css">
    </head>
    <body>
        <div class="container">
            <div class="row">
                <div class="col-md-8">
                    <form method="POST" action="pages/blog_articles.php">
                    <h1>Добавление новой статьи</h1><br/><br/>
                    <input class="theme_article" type="text" required name="textview" placeholder="Введите тему статьи"><br/><br/>
                    <input class="date" type="date" required value="<?php echo date('d.m.Y');?>"><br/><br/>
                    <input type="text" name="tags" required><br/><br/>
                    <textarea class="text" name="textarea" required cols="60" rows="13" placeholder="Введите текст статьи"></textarea><br/><br/>
                    <input class="btn" type="submit" name="add" value="Добавить статью">
                </form>
                </div>
                <div class="col-md-4">
                    <?
                        include('tags/right_tags.php'); *// это просто правый контент не обращайте внимание..*
                    ?>
                </div>
            </div>
        </div>
    </body>
</html>

А require_once('db/db.php'); просто подключение к БД. Ничего особенного

 <?
    $host = '127.0.0.1';
    $db   = 'test_db';
    $user = 'root';
    $pswd = '';
    $dsn = "mysql:host=$host;dbname=$db;";
    $opt = [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false,
    ];
    $pdo = new PDO($dsn, $user, $pswd, $opt);
 ?>
Answer 1

Вы только определяете, но не вызываете функцию. Добавьте этот кусок кода внутри блока if

createArticles($articles, $tags, $article_tags);

после строки $article_tags = $_POST['textarea'];

READ ALSO
Как синхронизировать пользователей?

Как синхронизировать пользователей?

Когда заходит первый пользователь ему присваивается рандомный id он записывается в базу данных, пользователь может нажимать на кнопку менять...

136
MYSQLI Ошибка вывода | Выводит только первую запись из DB

MYSQLI Ошибка вывода | Выводит только первую запись из DB

Почему-то у меня PHP выводит только первое значение из бд, как решить?

157
Yii2 показать страницу ошибки

Yii2 показать страницу ошибки

В контроллере, в методе beforeAction делаю некую проверку и если она не проходит, надо выкинуть ошибкуДелаю так

147