【发布时间】:2014-01-22 09:57:11
【问题描述】:
所以我正在构建一个将 POST 变量插入 MySQL 数据库的 PHP 站点。整个网站采用 UTF8 编码以支持希伯来语文本。
它在桌面上运行良好,但在 iOS 中,由于某种原因,该网站会在乱码中插入变量。
这是 PHP 代码示例:
$con=mysqli_connect("xxx","xxx","xxx","xxx");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$fullPhone=$_POST[prefix].''.$_POST[phone];
$sql="INSERT INTO testtab (fbName, fbId, fbComment, name, email, phone)
VALUES('$_POST[fbName]','$_POST[fbID]','$_POST[fbComment]','$_POST[name]','$_POST[email]','$fullPhone')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
mysqli_close($con);
【问题讨论】:
-
举一两个例子来说明数据究竟是如何损坏的可能会有所帮助。此外,“该站点在乱码中插入变量”,但是您在哪里看到这些乱码?在 iOS 应用程序中?数据在 iOS 上是如何显示的?
-
我在 PHP 文件中打印表格时看到了乱码。来自 PC 的所有希伯来语信息都正确显示,但来自 ios 的信息显示为符号。
-
顺便说一句,永远不要只使用这些
$_POST值构建 SQL:调用mysqli_real_escape_string或将值绑定到?占位符。 -
是的,好吧。当您不提供有关数据如何在 iOS 设备上输入和/或显示的任何信息时,仍然很难弄清楚 iOS 角度可能是什么。如果这就是不良数据的来源,那么有关如何创建和传输这些数据的一些细节似乎至关重要。
-
嘿 Rob,mysqli_real_escape_string 防止了什么?使用 $_POST 值有什么风险?
标签: php mysql ios utf-8 encode