试图让MySQL通过php连接到JSON,但返回错误从一个php脚本连接到MySQL [英] Trying to get MySQL to connect via php into JSON, but returning errors connecting to MySQL from a php script

查看:190
本文介绍了试图让MySQL通过php连接到JSON,但返回错误从一个php脚本连接到MySQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

基本上,我试图打印出JSON中的信息,以便我可以与我的应用程序通信,但我不能连接到MySQL数据库从php脚本有些奇怪的原因。它可能是导致错误:
警告:mysql_connect()[function.mysql-connect]:在MySQL服务器丢失连接查询/srv/disk11/1158855/www/(myphpwebsite)/lib.php在线13
无法连接:在查询期间与MySQL服务器断开连接。

Essentially, I am trying to print out information in JSON so that I can communicate with my app, but I cannot connect to the MySQL database from a php script for some odd reason. What could it be that causes the error: Warning: mysql_connect() [function.mysql-connect]: Lost connection to MySQL server during query in /srv/disk11/1158855/www/(myphpwebsite)/lib.php on line 13 Could not connect: Lost connection to MySQL server during query.

此外,第13行指示lib.php中的行:

Also, line 13 is indicating the line in lib.php:

mysql_connect($ dbhost,$ dbuser,$ dbpass)或die(Could not connect:.mysql_error());

还应注意,这是一个跟上一个问题,以防任何人想跟踪源:使用php连接到网站的MySQL问题

It should also be noted that this is a followup to a previous question in case anyone wanted to track down the source: MySQL issue connecting to site with php.

,我使用mysql从localhost和远程服务器得到相同的错误

Lastly, I get the same error from both a localhost and a remote server using mysql

lib.php

<?

//Database Information

$dbhost = "31.170.160.76";
$dbname = "testdatabase";
$dbuser = "(personalinformation)";
$dbpass = "tested123";


//Connect to database

mysql_connect ( $dbhost, $dbuser, $dbpass) or die("Could not connect: ".mysql_error());
mysql_select_db($dbname) or die(mysql_error());

//executes a given sql query with the params and returns an array as result
function query() {
    global $link;
    $debug = false;

    //get the sql query
    $args = func_get_args();
    $sql = array_shift($args);

    //secure the input
    for ($i=0;$i<count($args);$i++) {
        $args[$i] = urldecode($args[$i]);
        $args[$i] = mysqli_real_escape_string($link, $args[$i]);
    }

    //build the final query
    $sql = vsprintf($sql, $args);

    if ($debug) print $sql;

    //execute and fetch the results
    $result = mysqli_query($link, $sql);
    if (mysqli_errno($link)==0 && $result) {

        $rows = array();

        if ($result!==true)
        while ($d = mysqli_fetch_assoc($result)) {
            array_push($rows,$d);
        }

        //return json
        return array('result'=>$rows);

    } else {

        //error
        return array('error'=>'Database error');
    }
}

//loads up the source image, resizes it and saves with -thumb in the file name
function thumb($srcFile, $sideInPx) {

  $image = imagecreatefromjpeg($srcFile);
  $width = imagesx($image);
  $height = imagesy($image);

  $thumb = imagecreatetruecolor($sideInPx, $sideInPx);

  imagecopyresized($thumb,$image,0,0,0,0,$sideInPx,$sideInPx,$width,$height);

  imagejpeg($thumb, str_replace(".jpg","-thumb.jpg",$srcFile), 85);

  imagedestroy($thumb);
  imagedestroy($image);
}

?>

Index.php

Index.php

<?
session_start();
require("lib.php");
require("api.php");

header("Content-Type: application/json");

switch ($_POST['command']) {
    case "login": 
        login($_POST['username'], $_POST['password']); break;

    case "register":
        register($_POST['username'], $_POST['password']); break;

}

exit();
?>

api.php

<?php

function errorJson($msg){
    print json_encode(array('error'=>$msg));
    exit();
}

function register($user, $pass) {
    //check if username exists
    $login = query("SELECT username FROM login WHERE username='%s' limit 1", $user);
    if (count($login['result'])>0) {
        errorJson('Username already exists');

//try to register the user
$result = query("INSERT INTO login(username, pass) VALUES('%s','%s')", $user, $pass);
if (!$result['error']) {
    //success
    login($user, $pass);
} else {
    //error
    errorJson('Registration failed');
}
}
}
function login($user, $pass) {
    $result = query("SELECT IdUser, username FROM login WHERE username='%s' AND pass='%s' limit 1", $user, $pass);

    if (count($result['result'])>0) {
        //authorized
        $_SESSION['IdUser'] = $result['result'][0]['IdUser'];
        print json_encode($result);
    } else {
        //not authorized
        errorJson('Authorization failed');
    }
}


?>


推荐答案

我想出了什么事。事实证明,我的PHP代码进一步下降与登录冲突。这就是为什么它不会认证多个远程MySQL和我自己的Localhost

I figured out what was the matter. It turns out that my php code further down was conflicting with the login. That's why it wouldn't authenticate on multiple remote MySQL's and my own Localhost

这篇关于试图让MySQL通过php连接到JSON,但返回错误从一个php脚本连接到MySQL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆