2012-04-13 95 views
0

我正在制作一个网站,可以轻松共享公共PGP密钥。该网站在后端使用PHP和MySQL,在前端使用JavaScript。该网站在localhost上正常工作,但我刚刚将其上传到TuxFamily,并且它不起作用。MySQL命令在本地工作,但上传到TuxFamily时失败

我无法找出问题与我的查询有什么关系,因为我无法访问由MySQL或PHP生成的任何错误信息。我只留下猜测的问题是什么,我有一种感觉它的查询...

反正这里的代码:

的index.php:http://pastebin.com/TqJryvC2

INC/pgpshare.class。 PHP:http://pastebin.com/XXMv2PjK

的PHP能够正确地创建一个MySQL连接,并在pgpshare.class.php所有功能似乎工作如预期,除了if($user1key = $pgpshare->GetUser1Key($id))(的index.php:14)。

请帮我弄清楚为什么这是失败的。

在此先感谢;)

+0

什么让你觉得你没有访问'$ mysqli-> error'?你也尝试过使用'error_reporting(E_ALL),ini_set('display_errors','1')'来查看PHP错误吗? – MrCode 2012-04-13 12:16:08

+0

为什么你最近在回复你写的索引文件中的错误信息?它会告诉你可能是id是无效的....第一个看到它返回false的地方。 为什么你不能访问mysqli错误? – itachi 2012-04-13 12:24:08

+0

我试图访问$ mysqli->错误,在这种情况下$ pgpshare-> mysqli->错误,但从来没有任何输出:( – 2012-04-13 12:32:13

回答

0

您应该打印出来的错误,例如与mysqli- $>错误,如果不工作,你可以随时添加类似的东西:

$mysqli = new mysqli($1, $2, $3, $4)or die('Connection error: '.$mysqli->error); 
$stmt = $mysqli->prepare($sql)or die('Prepare failed: '.$mysqli->error); 
$stmt->bind_params($1, $2)or die('Bind_param failed: '.$stmt->error); 

即使mysqli->错误是空的,你会一直知道哪个函数失败。 并确保您在函数中使用$ stmt-> error(在您的情况下为$ query-> error)执行prepare函数。

$ query-> bind_param(“ssss”,$ id,$ key,$ user2key,$ ip);

我想的$ id是一个整数所以用 “我”:

$query->bind_param("isss", $id, $key, $user2key, $ip); 

也不要忘记更改连接数据(主机,用户, pw,db)更改为另一台服务器。

- 民鼎

相关问题