【问题标题】:Can not save image name while image name has `+` symbol using MySQL and PHP使用 MySQL 和 PHP 时图像名称带有“+”符号时无法保存图像名称
【发布时间】:2016-05-24 06:04:51
【问题描述】:

我需要一个帮助。我需要在名称中包含+ sysmbol 的数据库中保存一个图像名称,但在将其创建space 保存在+ 的位置之后。我在图片名称下面解释。

fmfvweoujrm_G+G image 是我需要存储到数据库中的图像,但存储后我在数据库中找到了fmfvweoujrm_G G image.jpg。我正在解释下面的代码。

$image=$_POST['image'];
$sql=mysqli_query($connect,'INSERT INTO db_restaurant_basic (date,image) values ("'.$date.'","'.$image.'",)');

这里我需要任何应该存储在数据库中的原始图像名称。请帮助我。

【问题讨论】:

  • db中image字段的类型是什么?
  • 使用mysqli_real_escape_string:$image = mysqli_real_escape_string($connect, $_POST['image']);
  • db中image字段的类型为varchar。
  • @Thamilan:我也在使用mysqli_real_escape_string,但问题仍然存在。
  • 您是否遇到任何错误?查看日志或添加错误函数

标签: php mysql image


【解决方案1】:

不需要在数据库中转义+。相反,很可能是在显示数据库中的数据时出现问题。

使用mysql命令行实用程序或phpMyAdmin之类的工具检查数据库的内容是否确实包含空格或加号。

如果我的假设是正确的,那么您正在创建一个图像标签并将数据库中的字符串用作src 属性。浏览器读取属性时,会将+转换为空白。

如果是,则需要在创建属性时为浏览器转义:

echo '<img src="' . urlencode($imgage) . '">';

【讨论】:

  • 它在+ sysmbol 的地方存储了数据库中的空间。我该如何解决这个问题。
  • 不,它存储在数据库中也会占用空间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-17
  • 1970-01-01
  • 2019-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多