Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我是否在尝试做一些可以';不能这样做吗?_Php_Mysql_Mysqli - Fatal编程技术网

Php 我是否在尝试做一些可以';不能这样做吗?

Php 我是否在尝试做一些可以';不能这样做吗?,php,mysql,mysqli,Php,Mysql,Mysqli,我已经创建了一个上传图像的网站,现在我正在尝试实现标签系统。上载图像时,从html select标记中选择要使用的标记,然后将有关图像的信息发布到我的文件中,该文件处理上载背后的逻辑。现在,因为我希望我的图像能够有多个标记,所以我使用了如下3个表: Table: image Columns: id, title, description, author, date, path Table: tags Columns: id, tag Table: tagsconnection Columns

我已经创建了一个上传图像的网站,现在我正在尝试实现标签系统。上载图像时,从html select标记中选择要使用的标记,然后将有关图像的信息发布到我的文件中,该文件处理上载背后的逻辑。现在,因为我希望我的图像能够有多个标记,所以我使用了如下3个表:

Table: image
Columns: id, title, description, author, date, path

Table: tags
Columns: id, tag

Table: tagsconnection
Columns: imageid, tagid
我的MySQL查询如下:

$userSearch = "SELECT username FROM user WHERE id='$author'";
                    $userResult = mysqli_query($conn, $userSearch);
                    $authorCheck = mysqli_fetch_assoc($userResult);
                    $sql = "INSERT INTO image (id, name, description, author, date, path) 
                    VALUES (NULL, '".$name."','".$description."','".$authorCheck['username']."','".$date."','".$fileNameNew."')";
                    $result = mysqli_query($conn, $sql);

                    $sql2 = "SELECT * FROM image WHERE name='$name'";
                    $sql2 = mysqli_query($conn, $sql2);
                    $imageIdCheck = mysqli_fetch_assoc($sql2);
                    $imageid = $imageIdCheck['id'];

                    $sql3 = "SELECT * FROM tags WHERE tag='$tag'";
                    $sql3 = mysqli_query($conn, $sql3);
                    $tagCheck = mysqli_fetch_assoc($sql3);
                    $tagid = $tagCheck['id'];

                    $sql4 = "INSERT INTO tagsconnection (id, imageid, tagid) VALUE (NULL, '".$imageid."', '".$tagid."')";
                    $result4 = mysqli_query($conn, $sql4);

这样,我的图像表成功地填充了图像信息,但是,我的标记连接表只接收标记的id,而不接收上载图像的id。显然,在上传图像之前,我无法知道图像的id,所以我的图像标签查询是在图像信息输入查询之后进行的。在my tagsconnection表中,imageid始终为0。

您正在将
NULL
显式插入到所有
id
列中。这些不应该是自动生成的ID吗?然后您可以使用
mysqli\u insert\u id
获取生成的id。我看不到为$imageid和$tagid分配正确值的代码空部分似乎不是问题,因为我将正确的tagid输入到tagsconnection表中,但是,imageid没有得到正确的输入。如果问题是NULL,它们不是都不能正确地获得输入吗?您的意思是没有获得
$imageid
所需的值吗?如果是这样,
var\u dump($imageIdCheck)
给了您什么?请注意,在您的
$sql2
查询中,您使用的是
名称
进行筛选,而您上面列出的列中不存在该名称。哇,这对我来说是一个巨大的错误。谢谢Optimae,现在它就像一个符咒。