2015-08-18 67 views
4

我正在尝试编写我的第一个基本PHP RESTful API - 我设法使用MAMP在本地机器上运行它。但是当我上传到托管服务器时,它不想工作。PHP mysqli_query将不会执行

下面的代码 - 我在里面添加了一些ECHO,以确保事情一直在进行中。看起来我们都很好,直到$result=mysqli_query

<?php 

//header('Content-type:application/json'); 

    // Connect to db 
    $con = mysqli_connect("HOSTNAME","USER","PASSWORD","DATABASE"); 

    echo "Database: "; 
    // Check connection 
    if ($con->connect_error) { 
     die("Connection failed: " . $con->connect_error); 
    } 
    echo "Connected successfully"; 
    echo "<br><br>"; 

    // Get value from url 
    $bid = $_GET['bid']; 
    echo "BID: "; 
    echo $bid; 
    echo "<br><br>"; 

    // Define Query 
    $sql = "SELECT id, bandname, members, bio, songlist FROM bands WHERE id='$bid'"; 
    echo "SQL Query: "; 
    echo $sql; 
    echo "<br><br>"; 

    // Run Query 
    $result = mysqli_query($con, $sql); 
    echo "Result: "; 
    print_r($result); 
    echo "<br><br>"; 

    // Put Query result into array 
    $result_array = mysqli_fetch_array($result, MYSQLI_ASSOC); 
    echo "Result Array: "; 
    print_r($result_array); 
    echo "<br><br>"; 

    // Encode array as JSON and output 
    echo "JSON: "; 
    echo json_encode($result_array); 

?> 

我输入网址是http://bandsly.com/api.php?bid=1,这是我收到的浏览器输出...

Database: Connected successfully 

BID: 1 

SQL Query: SELECT id, bandname, members, bio, songlist FROM bands WHERE id='1' 

Result: 

Result Array: 

JSON: null 

当我手动运行在数据库中查询SELECT id, bandname, members, bio, songlist FROM bands WHERE id='1'(phpMyAdmin的) ,它工作正常,我得到1行返回正确的值。

手动分贝查询结果: enter image description here

http://i.stack.imgur.com/d3ZPJ.png

任何帮助,将最理解!!

*****编辑*****

OK,我想我找到了问题...我的“连接成功”编写不正确,并且总是回来看起来很不错。它看起来像修复后,我有数据库连接问题。

我打算去查看db连接设置并尝试修复它。

谢谢大家的帮助!

+0

你可以用'mysql_fetch_assoc($结果);'$ – aldrin27

+1

CON = mysqli_connect( “主机名”, “用户”, “密码”, “数据库”);这里一切都好吗? – M0rtiis

+0

谢谢@ aldrin27 - 我会尽量保持它的精益。 –

回答

0

你所有的代码是正确的,我已经在测试我的本地只是改变你的 HOSTNAME像“本地主机”,像“根”的用户,密码像“你的密码”,数据库像“你的数据库名称”。

$con = mysqli_connect("HOSTNAME","USER","PASSWORD","DATABASE"); 

请,请访问http://php.net/manual/en/function.mysqli-connect.php

1

您的代码在我的本地系统http://www.awesomescreenshot.com/image/494275/c6c255cd6924d07196076b32489489de上似乎没问题。应该有一个连接问题。所以你可以做一些尝试检查像

检查连接的细节

// Connect to db 
    $con = mysqli_connect("HOSTNAME","USER","PASSWORD","DATABASE"); 

,然后你可以尝试平数据库

/* check connection */ 
if ($con->connect_errno) { 
    printf("Connect failed: %s\n", $con->connect_error); 
    exit(); 
} 

/* check if server is alive */ 
if ($con->ping()) { 
    printf ("Our connection is ok!\n"); 
} else { 
    printf ("Error: %s\n", $con->error); 
}