Catchable fatal error: cannot be converted to string?
Catchable fatal error: cannot be converted to string?
我无法解决
的问题
"Catchable fatal error: Object of class mysqli_result could not be converted to string."
我有 3 table:照片(photo_id、photo_filename、photo_caption)、标签(tag_id、tag_title)
其中 tag_title 是唯一的,并且 photos_tags(photo_id、tag_id)。
用户可以添加描述照片的标签(他可以插入任意数量的标签,用逗号分隔)。对于每个标签,我都想检查它是否已经存在,这样我就可以避免 table photos_tags 中的重复。它适用于 table 照片和标签,但我无法填写 table photos_tags。
任何帮助将不胜感激。
$tags = $tag_title;
$e = explode(',', $tags);
foreach($e as $value) //for every tag
{
$q_photo_id = mysqli_query($con, "SELECT photo_id FROM photos WHERE
(photo_filename ='$photo_filename' AND photo_caption = '$photo_caption')");
$photo_id = mysqli_fetch_array($q_photo_id);
$sql4 = mysqli_query($con, "INSERT IGNORE INTO tags (tag_title) VALUES ('$value')");
if (mysqli_insert_id($con)) {
$q_tag_id = mysqli_query($con, "SELECT tag_id FROM tags WHERE ('tag_title' = '$value')");
$tag_id = mysqli_fetch_array($q_tag_id);
}
else { //if the tag already exist
$q_tag_id = mysqli_query($con, "SELECT tag_id FROM tags WHERE ('tag_title' = '$value')");
$tag_id = mysqli_fetch_array($q_tag_id);
}
// insert into photos_tags
$sql6 = mysqli_query($con, "INSERT INTO photos_tags (photo_id, tag_id) VALUES ('$photo_id', '$tag_id')");
}
}
我不明白为什么调试这是一个问题。你应该插入字符串,或者可以转换成字符串的东西。此处您使用的是 $q_photo_id
和 $q_tag_id
,它们都是 mysqli_result
对象。它们不能被转换成字符串,PHP 对此有理由抱怨。您应该使用 $photo_id[0]
和 $tag[0]
而不是
我无法解决
的问题"Catchable fatal error: Object of class mysqli_result could not be converted to string."
我有 3 table:照片(photo_id、photo_filename、photo_caption)、标签(tag_id、tag_title)
其中 tag_title 是唯一的,并且 photos_tags(photo_id、tag_id)。
用户可以添加描述照片的标签(他可以插入任意数量的标签,用逗号分隔)。对于每个标签,我都想检查它是否已经存在,这样我就可以避免 table photos_tags 中的重复。它适用于 table 照片和标签,但我无法填写 table photos_tags。 任何帮助将不胜感激。
$tags = $tag_title;
$e = explode(',', $tags);
foreach($e as $value) //for every tag
{
$q_photo_id = mysqli_query($con, "SELECT photo_id FROM photos WHERE
(photo_filename ='$photo_filename' AND photo_caption = '$photo_caption')");
$photo_id = mysqli_fetch_array($q_photo_id);
$sql4 = mysqli_query($con, "INSERT IGNORE INTO tags (tag_title) VALUES ('$value')");
if (mysqli_insert_id($con)) {
$q_tag_id = mysqli_query($con, "SELECT tag_id FROM tags WHERE ('tag_title' = '$value')");
$tag_id = mysqli_fetch_array($q_tag_id);
}
else { //if the tag already exist
$q_tag_id = mysqli_query($con, "SELECT tag_id FROM tags WHERE ('tag_title' = '$value')");
$tag_id = mysqli_fetch_array($q_tag_id);
}
// insert into photos_tags
$sql6 = mysqli_query($con, "INSERT INTO photos_tags (photo_id, tag_id) VALUES ('$photo_id', '$tag_id')");
}
}
我不明白为什么调试这是一个问题。你应该插入字符串,或者可以转换成字符串的东西。此处您使用的是 $q_photo_id
和 $q_tag_id
,它们都是 mysqli_result
对象。它们不能被转换成字符串,PHP 对此有理由抱怨。您应该使用 $photo_id[0]
和 $tag[0]
而不是