当我将 PHP 与 Mysql 一起使用时,来自数据库的 URL 不正确

Posted

技术标签:

【中文标题】当我将 PHP 与 Mysql 一起使用时,来自数据库的 URL 不正确【英文标题】:URL from data base is not correct when i use PHP with Mysql 【发布时间】:2019-08-31 19:39:56 【问题描述】:

我有带有 URL 的数据库。 例如,我的网址是

https://besplatka.ua/?prop[161][from]=1&prop[161][to]=3&prop[136][to]=20000&currency=USD

当我使用这个 php 代码时

$result = mysqli_query($mysqli, "SELECT url FROM urls WHERE id=5");
while($res = mysqli_fetch_array($result))

 $my_url=$res['url'];

echo $my_url;

我看到 php 页面没有显示正确的值。处处编码为 UTF-8。

https://besplatka.ua/?prop[161][from]=1&prop[161][to]=3&prop[136][to]=20000¤cy=USD 

这个符号 ¤ 是什么意思?如何修复错误?

【问题讨论】:

你能分享你的连接代码吗? 我的连接代码是 设置连接后立即运行$mysqli->set_charset("utf8"); 就像@Mihai 先生所说,将 set_charset 添加到您的连接代码中 我被添加了 $mysqli->set_charset("utf8");连接代码但它不起作用。结果是一样的。 【参考方案1】:

经过一番搜索和尝试,我发现错误与编码 UTF8 无关,而是带有curren 字的& 符号变成了这个¤

(获取有关符号的信息:https://dev.w3.org/html5/html-author/charref)

所以你可以通过使用urlencode 函数来解决这个问题,或者只是将你的变量放在 URL 的第一个。

结果:https://besplatka.ua/?currency=USD&prop[161][from]=1&prop[161][to]=3&prop[136][to]=20000

希望对你有帮助。

【讨论】:

<?php $databaseHost = 'localhost'; $databaseName = 'sys'; $databaseUsername = 'root'; $databasePassword = ''; $mysqli = mysqli_connect($databaseHost, $databaseUsername, $databasePassword, $databaseName); mysqli_set_charset($mysqli,"utf8"); ?> 不起作用。结果是一样的。 你的数据库是 UTF8 类型的吗? 你可以查看这条评论:#14068747 - *** utf8_general_ci in db. 我有这个标题header('Content-Type: text/html; charset=UTF-8'); 但它不起作用。结果是 ¤

以上是关于当我将 PHP 与 Mysql 一起使用时,来自数据库的 URL 不正确的主要内容,如果未能解决你的问题,请参考以下文章

为什么PHP中的“use”关键字需要与Interface一起使用?

当我将 [::-1] 与变量一起使用时会发生啥? [复制]

MySQL:与案例一起使用时按子句分组不使用索引

当我将 setContentSize 与自动布局一起使用时,UIScrollView 崩溃

为啥当我将 SKSpriteNode 与图像一起使用时它不会反弹,但当我使用 SKShapeNode 时它确实有效?

当我将 RxSwift 的 DelegateProxy 与 FSCalendar 一起使用时发生错误