【发布时间】:2016-06-22 20:28:31
【问题描述】:
我不知道到底发生了什么,但是当我上传我的网站时,我的所有列都只返回了第一个字符。它在本地机器上运行良好。
我在这里找到了一个类似的问题,但我没有找到答案:
https://stackoverflow.com/questions/10507848/mysql-query-returns-only-the-first-letter-of-strings-only-when-page-is-viewed-on
// Log Table Query
unset($stmt);
$stmt = $db->stmt_init();
$stmt = $db->prepare( "SELECT * FROM logs ORDER BY `id` DESC" );
$stmt->store_result();
$stmt->bind_result($r_id, $r_time, $r_logger, $r_message, $r_category);
$stmt->execute();
while( $stmt->fetch() )
{
var_dump($r_message);
var_dump($r_category);
}
$stmt->close();
例如在 localhost 上输出:
字符串(5)“你好”字符串(3)“牛”
但在实时服务器上:
字符串(1)“H”字符串(1)“C”
有什么想法吗?
编辑
我认为这仅适用于字符串类型。整数类型返回例如:
int(2893)
【问题讨论】:
-
您的架构在两个系统上是否相同?直接运行这个查询会产生什么?
-
@tadman 是的。我实际上正在连接到相同的外部托管数据库。当直接在 MySQL Workbench 中运行查询时,它会产生预期的结果。
-
我猜你正在使用
mysqli,也许你会考虑从本地主机到网络服务器的 php 版本,以及你的数据类型。 -
我之前也有类似的问题。然后我发现在我的本地主机中,我的 sql 属性被定义为 varchar(100),但实时服务器中的相同属性被错误地定义为 varchar(1)。能否请您检查实时服务器中数据库上的属性类型?
-
您是否尝试过不按照您找到的问题评论中的建议拨打
unset($stmt);:stackoverflow.com/questions/10507848/…
标签: php mysql testing localhost live