【问题标题】:Problem with PHP connection to MySQL tablesPHP连接到MySQL表的问题
【发布时间】:2019-05-18 12:33:47
【问题描述】:

我的问题是这样的:

(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();

>

【问题讨论】:

  • 显示你做了什么。显示您的代码,以便我们为您提供帮助。
  • 可以使用 SQL 连接查询,但请提供您迄今为止所做的工作,以便我们对其发表评论并提供帮助。
  • 代码已上传,谢谢。
  • 所以你想对多个表执行多次插入?我说的对吗?
  • @HafizK 是的。我想在一个数据库的多个表中进行多次插入。我有 1 个表单和 1 个提交按钮。以 dB 为单位的表格已连接。第一个(table_demo)保存primary_key,其他6个表通过foreign_key与之相关。由于某些原因,只有具有主键的表接收到数据,而其他表则为空。

标签: php mysql forms mysqli


【解决方案1】:
  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);

【讨论】:

  • 请先阅读问题!当您使用 w3school 参考时,请添加您的来源!
  • 根据您的问题,您无法在表格中插入详细信息。在这里我给你一些插入和选择数据的建议。
  • 请先阅读问题。这很清楚。 7 是一个数字,表明我有 7 个表,其中 6 个表无法接收数据。我需要一个解决方案,可以同时容纳七张桌子。一起。不是一张桌子。
  • 请将您的整个数据库和代码发送到 sharma.bimal226@gmail.com。我会调查并为您提供解决方案。
【解决方案2】:

我想通了!有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);

【讨论】:

    猜你喜欢
    • 2020-03-18
    • 1970-01-01
    • 2020-11-20
    • 2019-10-03
    • 1970-01-01
    • 2020-01-22
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多