php - MySQL + PHP:如何处理存储过程参数中的变音符号?
问题描述
我在 PHP 中有这个功能:
public function getData($data) {
echo $data; //param still right for example: Schärding
$result = mysqli_query($this->conn, "CALL sp_kampagne_findcurrent ('".$data."')") or die(mysqli_error($this->conn));
@mysqli_next_result($this->conn);
return $result;
}
如您所见,我将参数传递$data
给我的 SP,然后返回结果。
这里的问题是,如果我传递没有变音符号(ä,ö,ü
)的单词,它会完美运行,但如果我使用像“Schärding”这样的单词,它会返回零数据,即使 MySQL 中存储有数据。
奇怪的是,如果我直接在其中调用我的 SP,PHPmyAdmin
它与“Schärding”这个词一起使用。所以错误必须在PHP客户端。
如果您需要更多信息,请说出来我会尝试添加更多信息。
解决方案
你应该尝试添加
mysqli_set_charset
到您的代码,一旦建立了 mysqli 连接
例如:
mysqli_set_charset($this->conn,"utf8");
当然更新编码,使其符合您的需要
推荐阅读
- javascript - Why is this template not working correctly?
- r - XGBoost 的折叠规范不正确
- azure - 使用来自不同订阅的 Azure AD 的 Azure 应用服务
- c - 试图从标准中理解有符号整数转换规则
- react-native - 简单的 ExpoKit 项目不能在 iOS 或 Android 上运行
- c# - 有没有办法绘制内存成本较低的轨迹?
- cuda - CUDA,复制到共享内存会显着增加使用的寄存器数量
- android - Android -> 音频视频与主视频声音合并,保持音频较低的音量
- android - 我的代码在改造 android 中给出了 403 响应,尽管 url 在邮递员中工作正常
- javascript - 我的 JavaScript 源代码在错误的备份中丢失,试图理解 if 语句