配置.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/