Проблема с подключением PHP к таблицам MySQL

Моя проблема заключается в следующем:

(1) на сервере у меня есть база данных в MySQL. Содержит 7 таблиц.
(2) На переднем крае у меня есть HTML-форма.
(3) Данные, введенные пользователем, должны заполнить эти 7 таблиц.
(4) Я использую PHP и связываю форму с базой данных с помощью mysqli.

По какой-то причине форма заполнила только первую таблицу, а остальные 6 не получили данных. Любая идея, как я могу подключить форму ко всем таблицам одновременно? Мне не нужна одна таблица sql, потому что форма HTML содержит более 300 полей ввода.
Спасибо вам.

отредактированный

Вот код

<?php
$host="localhost";
$user="root";
$pass="";
$db="ao db";

$conn = new mysqli ($host, $user, $pass, $db);

if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$firstname = $_POST["first_name"];
$lastname = $_POST["name"];
$female = $_POST["female"];

$stmt = $conn->prepare("INSERT INTO table_demo (Vorname, Nachname, female) VALUES (?, ?, ?)");
$stmt->bind_param("ssi", $firstname, $lastname, $female);

$stmt->execute();
$stmt->close();
echo "New records created in Demo";
$conn->close();

$link = new mysqli ($host, $user, $pass, $db);

if ($link->connect_error) {
die("Connection failed: " . $link->connect_error);
}

$height = $_POST["height"];
$weight = $_POST["weight"];

$stmt=$link->prepare("INSERT INTO table_pre (height, weight) VALUE (?, ?)");
$stmt->bind_param("ii", $height, $weight);

$stmt->execute();

$stmt->close();
echo "New records created in Pre";
$link->close();

>

0

Решение

  1. Для вашего кода сначала вы должны создать объекты подключения БД.

`

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}`
  1. для вставки в таблицу. С помощью этого вы можете вставить детали во все ваши семь таблиц.

    $sql = "INSERT INTO MyGuests (firstname, lastname, email)VALUES ('John', 'Doe', 'john@example.com')";

  2. выбирая детали из таблицы, используя это. С помощью этого вы можете выбрать из всех ваших семи таблиц.

    $sql = "SELECT id, firstname, lastname FROM MyGuests";
    $result = $conn->query($sql);

1

Другие решения

Я понял! Там где 2 вопроса:

Выпуск первый: таблицы не были созданы правильно, а внешний ключ был неправильно подключен. У меня проблема с созданием таблиц с внешним ключом через меню phpmyadmin. Может быть, лучше использовать базу данных SQL и синтаксис создания таблицы:

CREATE DATABASE IF NOT EXISTS database_name;

USE database_name;

CREATE TABLE table_1
(
table_1_id int not null auto_increment primary key,
variable_1 varchar(255) not null,
variable_2 int(11),
...
variable_to_be_used_as_foreign_key text,
variable_n text,
) ENGINE=InnoDB;

CREATE TABLE table_2
(
table_2_id int not null auto_increment primary key,
variable_1 varchar(255) not null,
variable_2 int(11),
...
variable_n text,
variable_to_be_used_as_foreign_key text,

FOREIGN KEY fk_table_2(variable_to_be_used_as_foreign_key)
REFERENCES table_1(variable_to_be_used_as_foreign_key)
ON UPDATE CASCADE
ON DELETE RESTRICT
) ENGINE=InnoDB;

ОБРАТИТЕ ВНИМАНИЕ: переменная внешнего ключа должна быть добавлена ​​в обе таблицы (я знаю, что это очевидно, но все же).

Выпуск № 2: произошел сбой в коде php. Я пропустил в подготовленном операторе вход в столбец внешнего ключа во второй таблице, а именно:

$stmt=$link->prepare("INSERT INTO table_pre (height, weight) VALUE (?, ?)");
$stmt->bind_param("ii", $height, $weight);

вместо:

$stmt=$link->prepare("INSERT INTO table_pre (height, weight, female) VALUE (?, ?, ?)");
$stmt->bind_param("iii", $height, $weight, $female);
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector