php 文件不回显远程服务器上 mysql 表的查询,但适用于本地 XAMMP mariaDB

标签 php mysql

摘要:

  • 我是后端开发新手。
  • 对于我的网站,用户输入城市位置和日期,然后点击提交按钮以选择要执行的事件。
  • 城市 GPS 坐标由 geobytes.com JSON-P API 提供
  • 日期由 jQuery datepicker 提供
  • 在外部 JavaScript 文件中提取坐标和日期,然后传递到 PHP 文件 (AJAX) 以查询多个表,然后将结果回显到网页。
  • 在我使用 XAMMP 的本地计算机上,一切正常。
  • 在我的学生网络空间上,对同时使用 GPS 和日期的表格进行的查询不会回显

背景:

  • 除了连接之外,两台服务器上的 PHP 代码相同
  • 位置表查询有效
  • 日期表查询有效
  • 一个表的字段包含 GPS 和日期。此查询不会从学校服务器回显。
  • 本地计算机是 MariaDB 10.1.38//Windows 10 上的 XAMMP v3.2.3)
  • 学校mysql服务器版本是5.5.54(在unix上)
  • PHP 版本 7.3.3
// PHP code
// AJAX VALUES PASSED FROM JAVASCRIPT FILE`
$s = $_GET['s'];
$q = floatval($_GET['q']);
$r = floatval($_GET['r']);

// FOR MYSQL
$sqlStarParty = "SELECT sp_name, sp_location, sp_date_start, sp_nights, sp_link, sp_comment
FROM star_party 
WHERE 
sp_date_start <= DATE_ADD(STR_TO_DATE('$s', '%Y-%m-%d'), INTERVAL 14 DAY)
AND
sp_date_start >= DATE_SUB(STR_TO_DATE('$s', '%Y-%m-%d'), INTERVAL 14 DAY)
AND
sp_latitude < ($q + 2) AND sp_latitude > ($q - 2)
AND
sp_longitude < ($r + 2) AND sp_longitude > ($r - 2)";


// TO BE ECHOED TO WEBPAGE
$resultStarParty = mysqli_query($conn, $sqlStarParty);

if (mysqli_num_rows($resultStarParty) > 0) {

while($row = mysqli_fetch_assoc($resultStarParty)) {
    echo $row["sp_name"] . "<br/>";
    echo "Location : " . $row["sp_location"] . "<br/>";
    echo "Current year event start date: " . date_format(new DateTime($row["sp_date_start"]),'F, jS') . " for " . $row["sp_nights"] . " nights<br/>"; 
        echo "Details and map: " . "<a href='".$row["sp_link"]."' target='_blank'>Website</a><br/>";
        echo "<br></br>";
    }
}   // if no records match query - print 0 results
 else {
     echo "Sorry no star parties for this time and location";
}

预期结果:

  • 所有查询日期/位置/日期+位置都应回显到网页。 实际结果:
  • 用户提交的位置和日期落在明星派对事件日期范围内(+- 14 天)
  • 没有显示错误消息
  • 提交按钮没有响应,或者明星聚会 table 没有回显。
  • 如有任何帮助,我们将不胜感激!

解决方案:

  • 我收到了 500 服务器错误,这可能是多种原因造成的。
  • MySQL 数据库正在获取正确的 js 变量值。
  • 当我发现这两个表使用 NEW DATE_TIME 时,问题得到了纠正。
  • 将 PHP 代码更改为 date_create。明星派对结果已显示且正确。
  • 谢谢保罗!

最佳答案

我想我已经解决了。 在发生 date_format(new DateTime($row["op_date"]) 的地方,我替换为 date_format(date_create($row["op_date"])。星星派对正在显示现在正确。希望这成立。

关于php 文件不回显远程服务器上 mysql 表的查询,但适用于本地 XAMMP mariaDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56140011/

相关文章:

php - Laravel 验证器的自定义服务提供者

php - 依赖mysql中的错误代码1062

php - 在 mysql 中运行更新查询后返回更新后的值

php - 使用 mySQL 查询填充 HTML 表单选择

mysql - 如果行中只有一条记录重复

php - Sql只选择第一行

php - 无法插入到我的 sql 表中

php - PHP 中测验的规范化数据库模式

php - 照亮\Http\Exceptions\PostTooLargeException

php - 在 Laravel 中下载后如何重定向?