php从另一表插入数据空白

sql语句数从据库的表中提取数据插入到另一张表中,加的数据是空白的

$dsn = "mysql:host=$servername;dbname=$dbname"; // 驱动程序 header("Content-Type:text/html; charset=utf-8"); //设置头信息 try { $dbh=new PDO($dsn,$username,$password); //创建一座桥 $sql="select * from tb_li"; $result=$dbh->query($sql); //执行命令 while($row=$result->fetch()){ echo(' <ul> <li class="lione"><img src="'.$row['img'].'" width="100%" height="100%"></li> <form action="admin/insert_sever.php" method="post"> <li class="litwo"><h4 name="name">'.$row['name'].'</h4><h4n name="list">'.$row['list'].'</h4><br>'.$row['more'].'</li> <li class="lithere"><a href=""><button name="btnSubmit" style="border: none;">加入书架</button></a></li> </form> </ul> '); } } catch(PDOException $e) { echo $e->getMessage(); } ?> </div>

insert_sever.php
<?php
include_once 'server/conn.php';

$name=$_POST['name'];
$list=$_POST['list'];

$sql=" INSERT INTO tb_book ( name, list) select '$name', '$list' tb_li";

$jg=$dbh->query($sql);
$row=$jg->fetch();

echo '';
?>
另一个表

$dsn = "mysql:host=$servername;dbname=$dbname"; // 驱动程序 try { $dbh=new PDO($dsn,$username,$password); //创建一座桥 $sql="select * from tb_book"; $result=$dbh->query($sql); //执行命令 while($row=$result->fetch()){ echo('<div class="td w20">'.$row['name'].'</div>'); echo('<div class="td w20">'.$row['list'].'</div>'); echo('<div class="td w15">'.$row['time'].'</div>'); echo('<a href="webdel.php?id='.$row['id'].'" style="right:0;" class="td w15">删除</a><br>'); } } catch(PDOException $e) { echo $e->getMessage(); } ?> </div>

img

img

img

  • 以下回答由chatgpt基于相关博客总结生成:

    可能出现的问题:

    1. SQL语句写错,无法正确地插入需要的数据。
    2. 数据库连接失败,导致无法插入数据。
    3. 目标表的列名和插入的数据的列名不匹配,导致数据插入失败。
    4. 数据类型不匹配,导致数据插入失败。
    5. 目标表的唯一属性限制了重复数据的插入。

    解决方案:

    1. 检查SQL语句是否正确,可以在数据库中直接执行SQL语句测试。
    2. 检查数据库连接是否正常,可以使用ping()函数测试数据库连接是否正常。
    3. 确认目标表的列名和插入数据的列名是否一致,可以修改SQL语句或者修改插入数据的列名。
    4. 确认目标表和插入数据的数据类型是否一致,可以使用CAST函数或者修改数据类型以确保数据类型一致。
    5. 检查目标表是否有唯一属性,根据需要修改SQL语句或者修改目标表的唯一属性。

    在代码中,可以使用如下示例代码来插入数据:

    //连接数据库
    $conn = mysqli_connect($host, $username, $password, $dbname);
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }
    
    //从一个表中提取数据到另一个表中
    $sql = "INSERT INTO table2 (col1, col2, col3)
            SELECT col1, col2, col3
            FROM table1";
    if(mysqli_query($conn, $sql)) {
        echo "Data inserted successfully!";
    } else {
        echo "Error inserting data: " . mysqli_error($conn);
    }
    
    //关闭数据库连接
    mysqli_close($conn);
    

    其中,$host为数据库主机名,$username为数据库用户名,$password为数据库密码,$dbname为要连接的数据库名。col1, col2, col3是目标表的列名,table1table2是两个源表和目标表的表名。只需将代码中的数据类型、列名、表名等信息替换成实际的内容即可实现从一个表中提取数据到另一个表中。