2015-08-18 100 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); 
}