Php 在“图像标题”属性的网页上显示mysql表中的撇号

Php 在“图像标题”属性的网页上显示mysql表中的撇号,php,mysqli,fancybox,Php,Mysqli,Fancybox,我有一个表单,允许用户在mysql表中输入一个收缩(例如Larry的狗)>代码如下: <?php <?php if(isset($_POST['submit'])){ $title = mysqli_real_escape_string($conn,$_POST['title']); $insertImageQ = "INSERT INTO images (title, name, keyword1, keyword2, keyword3, enter_date) VALU

我有一个表单,允许用户在mysql表中输入一个收缩(例如Larry的狗)>代码如下:

<?php


<?php
if(isset($_POST['submit'])){

$title = mysqli_real_escape_string($conn,$_POST['title']);


$insertImageQ = "INSERT INTO images (title, name, keyword1, keyword2, keyword3, enter_date) VALUES('$title', '$name', '$keyword1','$keyword2','$keyword3',now())"; 


if(!mysqli_query($conn, $insertImageQ)){
die('error inserting new image');
}
$newImage = "one new image added";
}
}
?>
当标题字段出现收缩时,从撇号开始的所有内容都将被切断

另外,在另一个页面上,title字段包含在一个fancybox应用程序中,其中图像是从mysql表中绘制的。标题字段在fancybox应用程序中的显示方式与它应该的一样,除非标题中出现收缩,在这种情况下,图像甚至不会像在fancybox应用程序中那样弹出

同样,如果我用这个代码用一个收缩来更新同一个图像

<?php


if(isset($_POST['submit'])){



$title= mysqli_real_escape_string($conn,$_POST['title']);




$updateQ = "UPDATE images SET title='$title'"; 

if(!mysqli_query($conn, $updateQ)){
die('error inserting');
}



}
?>
默认情况下,
htmlentities()将保留单引号,当您在html属性中使用它们时,这将导致无效的html

您可以执行如下单引号编码:

htmlentities("'", ENT_QUOTES);

更多信息请访问

谢谢danjam。第一句话让我意识到我做错了什么。因此,我将echo“title=”(输出title='Larry's dogs')更改为echo“title=\”(产生title='Larry's dogs')。这非常有效。
<?php


if(isset($_POST['submit'])){



$title= mysqli_real_escape_string($conn,$_POST['title']);




$updateQ = "UPDATE images SET title='$title'"; 

if(!mysqli_query($conn, $updateQ)){
die('error inserting');
}



}
?>
htmlentities("'", ENT_QUOTES);