PHP显示与sql执行不同的查询

标签 php mysql

配置.php

@$mysqli= mysqli_connect($servername, $username_bd, $password_bd, $dbname);
if($mysqli->connect_error)
    return false;

插入.php

include 'config.php';        
$DateDefault = '2015-07-30 00:00:00
2015-08-30 00:00:00';

 $sql = "INSERT INTO users (date) VALUES ('$DateDefault')";        
   if($query = $mysqli->query($sql)===true)
       echo "Date add successfully";
   else
       echo "Error into date";

show.php

include 'config.php';

$sql = "SELECT date FROM users WHERE username='$username'";
$query = $mysqli->query($sql);
if (@$query->num_rows > 0){
    while ($dados = $query->fetch_assoc()) { 
        echo substr($dados['date'], 21, 19);
    }
}

结果: “2015-08-30 00:00:00”

现在,当我更改 phpmyadmin 中的日期时,

"2015-07-30 00:00:00
2015-09-30 00:00:00"

显示这个:

"015-09-30 00:00:00 "

在本地主机中,使用wampserver,这个错误不会发生

最佳答案

您的问题可能与 how different operating systems treat line endings 有关。简而言之,在 Windows 上,行结尾占用两个字符(回车符和换行符,\r\n),而在大多数其他操作系统上,它们只占用一个字符(换行符,\n)。通过使用特定的字符偏移量,您可能会遇到所看到的相差一错误的可能性。

一个简单的解决方法是使用单个空格(或另一个字符)而不是换行符来分隔日期。如果您仍然想使用换行符,可以split the string by whitespace :

$dates = preg_split('/\s+/', $dados['date']); // Split dates by whitespace
echo $dates[1]; // Print the second date

关于PHP显示与sql执行不同的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31736047/

相关文章:

mysql - 如果 and 子句中没有数据,则选择错误

php - Cakephp 迁移 - 一般错误 : 1215 Cannot add foreign key constraint

mysql - 给定语句的 ActiveRecord 等效 SQL

php - Centos/PHP 升级后服务器宕机

php - 如何使用服务帐户凭据访问 Google 电子表格?

php - 仅从 MySQl 中检索需要的信息或在 Jquery 中检索后对其进行过滤?

php - Count/Group By/Order By 只显示最常见值的计数而不是字符串本身

php - 尽管我有,但没有选择数据库

php - UTF-8贯穿始终

MySQL 将不同的列转换为行