当我将 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¤cy=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一起使用?
当我将 setContentSize 与自动布局一起使用时,UIScrollView 崩溃