当前位置: 首页 > 知识库问答 >
问题:

无法将数据插入子表SQL phpMyAdmin

邰伟彦
2023-03-14

基本上我有两个简单的表…第一个叫做“user”,它是父表。PK是索引自动递增的。第二个表称为“useradvert”。“id”字段充当索引键,它不会自动递增。每当我尝试插入数据时,它都不会进入表(useradvert)。在我的PHP页面上没有任何错误。我打开了错误报告。我设法创建了一个没有错误的关系表。我已经试着解决这个问题好几天了,并在网上搜索答案,但仍然找不到和理解这个问题。问题是由于子表中的索引键(id)没有自动递增造成的吗?两个id密钥都应该自动递增吗?

表定义如下:“users”-父表和“useradvert”-子表;

创建表如果不存在useradvert(idint(10)无符号NOT NULL,name2varchar(60)COLLATE utf8_unicode_ci NOT NULL,color2varchar(60)COLLATE utf8_unicode_ci NOT NULL,hobby2varchar(60)COLLATE utf8_unicode_ci NOT NULL,id))工程

--

--

用户(IDnametelno用户名用户名用户名密码日期)中插入值(95,'test name','099999999999','test@test.com','$2y$12$fqdmaqk5c8qk8eh2twy2n.adnoo'$2Y$12$NHW0CJWCF5AS4VB3MJIBO.O7NXSZXXH.T5FWGV3PFE5IZWBOO0A0O','2015-12-24 05:20:19');

--

更改表useradvert添加约束useradvert_ibfk_1外键(id)引用users(id);

这是用户页面(useracc-test.php),用户假设将数据插入表“useradvert”中。该页面显示以前注册的数据(来自表“user”,该页面还允许用户插入新数据(到表“useradvert”)。

    <?php

//useracc-test.php

/**
 * Start the session.
 */
session_start();
ini_set('display_errors', 1);
error_reporting(E_ALL);



// require 'lib/password.php';
require 'connect-test.php';


$userName= isset($_POST['username']) ? $_POST['username'] : '';




$query = "SELECT id, name, username, telno FROM users WHERE username = ?";
$stmt = $conn->prepare($query);
$stmt->bind_param('s', $userName);
$stmt->execute();
$res = $stmt->get_result();


 ?>




<html>
<head>
<style type="text/css">
#apDiv2 {
    position: absolute;
    left: 51px;
    top: 238px;
    width: 237px;
    height: 93px;
    z-index: 1;
}
#apDiv1 {
    position: absolute;
    left: 134px;
    top: 123px;
    width: 234px;
    height: 104px;
    z-index: 2;
}
#apDiv3 {
    position: absolute;
    left: 58px;
    top: 146px;
    width: 219px;
    height: 61px;
    z-index: 2;
}
#apDiv4 {
    position: absolute;
    left: 302px;
    top: 102px;
    width: 365px;
    height: 123px;
    z-index: 3;
}
</style>
<link href="SpryAssets/SpryTabbedPanels.css" rel="stylesheet" type="text/css">
<script src="SpryAssets/SpryTabbedPanels.js" type="text/javascript"></script>
</head>
<body>
Your Personal details:</p>
      <p><?php while($row = $res->fetch_array()): ?>
<p><?php echo $row['id']; ?></p>
<p><?php echo $row['name']; ?></p>
<p><?php echo $row['username']; ?></p>
<p><?php echo $row['telno']; ?>





  <?php     

  // $userid = $_POST['id'];
  $stmt=$conn->prepare("INSERT INTO useradvert (id,name2,color2,hobby2) VALUES (?,?,?,?)");
  $stmt->bind_param("isss", $id, $name2, $color2, $hobby2);
  $stmt->execute();
  if (!$stmt)
  { printf("Errormessage: %s\n", $mysqli->error);}
  else {

  echo "New records created successfully";}

$stmt->close();
$conn->close();

    ?>  





<form name="form2" method="post" action="useracc-test.php">
        <p>INSERT YOUR INTEREST:</p>
        <p>     
        </p>
          ID:
      <input name="id" type="hidden" id="id" value="<?php echo $row['id']; ?>">


  <p>Name :
          <input type="text" name="name2" id="name2">
        </p>
        <p>
          <label for="warna2"></label>
          Color :
          <input type="text" name="color2" id="color2">
        </p>
        <p>
          <label for="hobi2"></label>
          Hobby:
          <input type="text" name="hobby2" id="hobby2">
        </p>
        <p>
          <input type="submit" name="submit" id="submit" value="submit">
       </p>
        <p>&nbsp;</p>
      </form>       

               <?php endwhile; ?>

               </body>
               </html>

共有1个答案

权胜泫
2023-03-14

索引键不需要自动递增。相反,您应该将记录插入到users表中,获取该记录的ID,并将其作为useradvert表中的ID手动插入。

我暗暗怀疑您的错误是外键约束失败。如果在运行每个插入后检查错误,您可能会看到它。您给出的UserAdvertID必须首先作为Users表中的ID存在。

 类似资料:
  • 事情是这样的 我不知道发生了什么,如果有人能帮忙,我会非常感激的。THX!

  • 问题内容: 我一直在看这段代码已有一段时间了,但我看不出问题出在哪里。我已经阅读了整个StackOverflow,但仍然看不到我的错误在哪里。 错误在第13行中,即thats 。我尝试通过http://www.w3schools.com/php/php_mysql_insert.asp帮助自己,但对我没有太大帮助。 问题答案: 警告: 切勿将 w3schools 用于学习目的。他们的教程中有很多错

  • 使用与hive 2.2.0集成的Spark2.3thriftserver。从火花直线运行。尝试将数据插入配置单元hbase表(以hbase作为存储的配置单元表)。插入到配置单元本机表是可以的。当插入到配置单元hbase表时,它会引发以下异常:

  • 我是laravel的新手,当我使用单击函数提交表单时出现了一些问题。ajax jquery controller不会将数据保存到数据库,每次响应时都会使用整个html文件。请帮帮我。 关于标题的一些信息 请求URL:http://akshay.laravel/patient1?fname=asdknkl 状态代码:200 OK 远程地址:[::1]:80 推荐人策略:降级时无推荐人 缓存控制:无缓

  • 问题内容: 我有一张表格,列出了来自特定网站的评论数量,如下所示: 我还有另一个表,列出了所有站点,例如从1到10 使用以下代码,我可以找出上个月缺少哪些站点条目: 生产: 我希望能够使用一些默认值(即“ 0”)将查询中列出的缺失网站插入到注释表中 问题是,我如何更新/插入表/值? 干杯, 背风处 问题答案:

  • 我的雪花实例上有一个数据库。数据库有两个模式和。 模式使用SQLAlchemy- 我有一个列的dataframe,如下所述,需要插入到上面创建的表中- 因此,为了插入数据帧,我使用了方法,如下所示- 数据帧。to_sql(table_name,self.engine,index=False,method=pd_writer,if_exists=“append”) 这会给我一个错误- 这个错误是因为