Php 带有树脂服务器的MySqli

Php 带有树脂服务器的MySqli,php,mysqli,resin,Php,Mysqli,Resin,我对MySqli有一个问题,如果您能提供帮助或意见,我将不胜感激。 我正在尝试在树脂Web服务器上运行的MySQL数据库中使用Set_charset(“utf8”)。我在其他帖子中找到了几个选项,并进行了尝试,如: $conn = new mysqli($servername, $user, $password, $dbname); $conn->query('SET NAMES utf8'); 或 这些命令在运行mysql-5.6.20和PHP5.4.31的本地Ap

我对MySqli有一个问题,如果您能提供帮助或意见,我将不胜感激。 我正在尝试在树脂Web服务器上运行的MySQL数据库中使用Set_charset(“utf8”)。我在其他帖子中找到了几个选项,并进行了尝试,如:

     $conn = new mysqli($servername, $user, $password, $dbname);
     $conn->query('SET NAMES utf8');

这些命令在运行mysql-5.6.20和PHP5.4.31的本地Apache服务器上工作

但它们不能在运行MySQl 5.6和PHP5.5的树脂Web服务器上工作。我在本地Apache服务器(uAMP)中进行了开发,然后将php文件复制到Resin Web服务器

我在WWW3S中找到以下代码来设置和验证字符集:

<?php
$mysqli = new mysqli("localhost", "root", "root", "bdtest");

/* check connection */
if (mysqli_connect_errno()) {
 printf("Connect failed: %s\n", mysqli_connect_error());
 exit();
 }

 printf("Initial character set: %s\n", $mysqli->character_set_name());

 /* change character set to utf8 */
 if (!$mysqli->set_charset("utf8")) {
  printf("Error loading character set utf8: %s\n", $mysqli->error);
  exit();
} else {
printf("Current character set: %s\n", $mysqli->character_set_name());
}

$mysqli->close();
?>

在Apache本地服务器中运行时,我得到了正确的结果:

初始字符集:拉丁1当前字符集:utf8

但在树脂服务器中,我得到以下信息:

初始字符集:latin1加载字符集utf8时出错:

所以我猜,这一定是因为set_字符集在树脂中没有得到正确的解释。但我不知道为什么(如果可以的话,我只会扔掉树脂,改成Apache…但我不能)

任何帮助、想法和评论都将不胜感激。谢谢


João

联系您服务器的管理员。Resin使用
Quercus
,我可以从中收集到PHP的JAVA实现,即我认为这意味着PHP转换为JAVA代码。我猜他们没有完全或很好地实现MYSQLI,或者在这方面存在细微的差异。只是为了说明您应该在与您想要部署的环境相匹配的环境上进行开发。谢谢@frosty。服务器的管理员不知道(这是一个非常旧的部署…)。谢谢@riggsfully。我相信没有便携式树脂服务器,所以我无法在其中开发。。。。是的,Resin使用了Php的java实现,因此代码中肯定有差异,甚至没有实现该函数……谢谢您的评论
<?php
$mysqli = new mysqli("localhost", "root", "root", "bdtest");

/* check connection */
if (mysqli_connect_errno()) {
 printf("Connect failed: %s\n", mysqli_connect_error());
 exit();
 }

 printf("Initial character set: %s\n", $mysqli->character_set_name());

 /* change character set to utf8 */
 if (!$mysqli->set_charset("utf8")) {
  printf("Error loading character set utf8: %s\n", $mysqli->error);
  exit();
} else {
printf("Current character set: %s\n", $mysqli->character_set_name());
}

$mysqli->close();
?>