如何使用 php 向 sql 数据库中的多对多关系 table 插入记录?
How to insert records to a many to many relationship table on an sql database using php?
我刚开始 PHP,遇到 php 的问题,下面显示的 sql 命令不执行(将记录插入多对多关系 table) 当用 php 调用它时,当用 mysql 命令行界面手动插入它时它工作得很好。
我使用 $ds 和 $da(手动输入)而不是使用会话来确保命令被执行。请注意,我还有其他 mysql 查询,并且在通过 php 使用与下面显示的相同的数据库连接执行时工作得很好。
$connectionStatua = connect_db();
mysqli_query($connectionStatus, $sql);
$username = $_SESSION["username"];
$ds = "dekna";
$da = "dsa.jpg";
$query="INSERT INTO `tbl_users_files` (`user_ID`, `file_ID`)
SELECT `u.id`, `f.id` FROM `users` as `u` CROSS JOIN `tbl_uploads` as `f`
WHERE `username` = '$ds' AND `file` = '$da'";
mysqli_query($connectionStatus, $query);
请看一下我的table的结构:
mySql tables structure
此外,可以在此处查看该命令在 mysql cli 中完美运行的证据:("dekna" 的 ID 为 1 而 dsa.jpg 的 ID 为 44 - 因此请查看最后记录):
mySql cli - Command
步骤 1> 从用户 table:
获取用户的 (Select) id
步骤 2> 从 tbl_uploads table 获取 (Select) 文件 ID:
步骤 3> 插入 user_ID(来自步骤 1)和 file_ID(来自步骤 2)到 tbl_users_files table:
$connectionStatua = connect_db();
mysqli_query($connectionStatus, $sql);
$username = $_SESSION["username"]; //or $ds = "dekna";
$da = "dsa.jpg";
$user_ID = $file_ID = null;
//STEP 1
$query1="SELECT id FROM 'users' WHERE username = '$username'";
$result1 = mysqli_query($connectionStatus, $query1);
if( mysqli_num_rows($result1 ) > 0)
{
while ($row = mysqli_fetch_array($result1)) {
$user_ID = $row['id'];
}
}
//STEP 2
$query2="SELECT id FROM 'tbl_uploads' WHERE file = '$da'";
$result2 = mysqli_query($connectionStatus, $query2);
if( mysqli_num_rows($result2 ) > 0)
{
while ($row = mysqli_fetch_array($result2)) {
$file_ID = $row['id'];
}
}
//STEP 3
$query3 ="INSERT INTO tbl_users_files (user_ID, file_ID) values('$user_ID' , '$file_ID')";
mysqli_query($connectionStatus, $query3);
我刚开始 PHP,遇到 php 的问题,下面显示的 sql 命令不执行(将记录插入多对多关系 table) 当用 php 调用它时,当用 mysql 命令行界面手动插入它时它工作得很好。 我使用 $ds 和 $da(手动输入)而不是使用会话来确保命令被执行。请注意,我还有其他 mysql 查询,并且在通过 php 使用与下面显示的相同的数据库连接执行时工作得很好。
$connectionStatua = connect_db();
mysqli_query($connectionStatus, $sql);
$username = $_SESSION["username"];
$ds = "dekna";
$da = "dsa.jpg";
$query="INSERT INTO `tbl_users_files` (`user_ID`, `file_ID`)
SELECT `u.id`, `f.id` FROM `users` as `u` CROSS JOIN `tbl_uploads` as `f`
WHERE `username` = '$ds' AND `file` = '$da'";
mysqli_query($connectionStatus, $query);
请看一下我的table的结构: mySql tables structure
此外,可以在此处查看该命令在 mysql cli 中完美运行的证据:("dekna" 的 ID 为 1 而 dsa.jpg 的 ID 为 44 - 因此请查看最后记录): mySql cli - Command
步骤 1> 从用户 table:
获取用户的 (Select) id步骤 2> 从 tbl_uploads table 获取 (Select) 文件 ID:
步骤 3> 插入 user_ID(来自步骤 1)和 file_ID(来自步骤 2)到 tbl_users_files table:
$connectionStatua = connect_db();
mysqli_query($connectionStatus, $sql);
$username = $_SESSION["username"]; //or $ds = "dekna";
$da = "dsa.jpg";
$user_ID = $file_ID = null;
//STEP 1
$query1="SELECT id FROM 'users' WHERE username = '$username'";
$result1 = mysqli_query($connectionStatus, $query1);
if( mysqli_num_rows($result1 ) > 0)
{
while ($row = mysqli_fetch_array($result1)) {
$user_ID = $row['id'];
}
}
//STEP 2
$query2="SELECT id FROM 'tbl_uploads' WHERE file = '$da'";
$result2 = mysqli_query($connectionStatus, $query2);
if( mysqli_num_rows($result2 ) > 0)
{
while ($row = mysqli_fetch_array($result2)) {
$file_ID = $row['id'];
}
}
//STEP 3
$query3 ="INSERT INTO tbl_users_files (user_ID, file_ID) values('$user_ID' , '$file_ID')";
mysqli_query($connectionStatus, $query3);