Php 正在尝试配置数据库。我认为我的数据源名称有问题

Php 正在尝试配置数据库。我认为我的数据源名称有问题,php,mysql,json,Php,Mysql,Json,我正在尝试配置ArrestDB为我的站点创建api。 正如安装中所述,我需要将$dsn更改为: MySQL: 目前我有 $dsn = 'mysql://user:password@localhost/database/'; 我用上面的括号试过了,但这导致了503服务不可用错误。当我移除支架时,会导致以下错误: { "error": { "code": 400, "status": "Bad Request" } } 你知道我做错了什么吗?我觉

我正在尝试配置ArrestDB为我的站点创建api。

正如安装中所述,我需要将$dsn更改为: MySQL:

目前我有

$dsn = 'mysql://user:password@localhost/database/';
我用上面的括号试过了,但这导致了503服务不可用错误。当我移除支架时,会导致以下错误:

{
    "error": {
        "code": 400,
        "status": "Bad Request"
    }
}
你知道我做错了什么吗?我觉得一切都很正常

编辑:

尝试了以下建议,api返回:

array(28) {        
  ["REDIRECT_STATUS"]=> string(3) "200" 
  ["HTTP_HOST"]=> string(16) "api.shopsavr.com" 
  ["HTTP_CONNECTION"]=> string(10) "keep-alive" 
  ["HTTP_ACCEPT"]=> string(74) "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" 
  ["HTTP_USER_AGENT"]=> string(109) "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36" 
  ["HTTP_ACCEPT_ENCODING"]=> string(17) "gzip,deflate,sdch" 
  ["HTTP_ACCEPT_LANGUAGE"]=> string(14) "en-US,en;q=0.8" 
  ["PATH"]=> string(209) "/usr/local/jdk/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/lib/courier-imap/sbin:/usr/lib/courier-imap/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin" 
  ["SERVER_SIGNATURE"]=> string(0) "" 
  ["SERVER_SOFTWARE"]=> string(136) "Apache/2.2.25 (Unix) mod_ssl/2.2.25 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.4.20" 
  ["SERVER_NAME"]=> string(16) "api.shopsavr.com" 
  ["SERVER_ADDR"]=> string(11) "50.28.7.250" 
  ["SERVER_PORT"]=> string(2) "80" 
  ["REMOTE_ADDR"]=> string(12) "67.247.5.220" 
  ["DOCUMENT_ROOT"]=> string(30) "/home/shopsavr/public_html/api" 
  ["SERVER_ADMIN"]=> string(26) "webmaster@api.shopsavr.com" 
  ["SCRIPT_FILENAME"]=> string(40) "/home/shopsavr/public_html/api/index.php" 
  ["REMOTE_PORT"]=> string(5) "58487" 
  ["REDIRECT_URL"]=> string(8) "/PRODUCT" 
  ["GATEWAY_INTERFACE"]=> string(7) "CGI/1.1" 
  ["SERVER_PROTOCOL"]=> string(8) "HTTP/1.1" 
  ["REQUEST_METHOD"]=> string(3) "GET" 
  ["QUERY_STRING"]=> string(0) "" 
  ["REQUEST_URI"]=> string(8) "/PRODUCT" 
  ["SCRIPT_NAME"]=> string(10) "/index.php" 
  ["PHP_SELF"]=> string(10) "/index.php" 
  ["REQUEST_TIME_FLOAT"]=> float(1383666718.92) 
  ["REQUEST_TIME"]=> int(1383666718)
}

问题 根据您的代码和转储信息,ArrestDB未收到您的完整请求。
$\u服务器['REQUEST\u URI']
的内容是
“/”
,这意味着
.htaccess
文件中可能有错误,该文件应捕获任何地址并将其定向到ArrestDB PHP文件

背景信息 通常
4XX
范围内的HTTP响应代码表示错误请求。 通常
5XX
范围内的HTTP响应代码表示错误

如果发生其他错误(错误的SQL参数、服务器超时等),ArrestDB将响应
4XX
错误代码(不是400,而是另一个4XX错误)。 如果数据库连接以任何方式为“坏”,ArrestDB将以
5XX
错误代码(特别是503)响应

推理 由于它的响应正好是400作为错误代码,这意味着它无法提供“特定”错误代码(400表示“未知类型的不良连接”)

可能的解决办法
首先,为了证实我的理论,我建议您删除我要求您输入的
var\u dump+exit
而不是编写
$\u服务器['REQUEST\u URI']=“/products”。这将迫使ArrestDB认为它需要列出
产品
表。当我们使用此黑客程序时,确认一切正常后,我们将尝试修复您的
.htaccess
问题。

如果您没有.htaccess文件,则需要将完整URL放入工作状态,如下所示:
http://localhost/ArrestDB/index.php/[表]

http://localhost/ArrestDB/index.php/[table]
非常适合我

不要在dns上放括号
…仍在研究如何发布…

区分大小写的dsn协议名称<代码>MySQL
!=
mysql
。我尝试了$dsn='mysql://user:password@localhost/数据库/';什么也没变。这就是你想要我尝试的吗?是的,这就是我想要你尝试的。不太可能是这样的,只是为了确认一下。研究代码时,它似乎在用尽所有其他可能的场景并没有找到匹配项之后输出了
400个错误请求
。就好像没有通过任何可能的参数请求任何方法一样。您使用的REST请求+参数是什么?您在哪里输入了
$\u服务器['request\u URI']=“/products”行?在文件的开头,我希望如此。是的,我用它替换了前面的var_dump+exit。你知道ArrestDB为什么输出
$\u服务器['REQUEST_URI']=“/products”?该行不应该被输出,它应该被执行。它不会被输出,除非您在
主机上有xdebug吗?你能激活它以便我们远程调试吗?那是我最后一次停止使用它的地方。我在PHP之前试过,之后又试过。我现在把它拆了。就在php部分之后。我想我没有xdebug,让我看看
http://localhost/ArrestDB/index.php/[table]