2016-12-29 76 views
0

在我問我的問題之前,我看過here(還有許多許多其他地方)。PHP查詢中的變量

我已經嘗試過以下格式'".$user_id." ''$user_id'甚至?作爲我的變量持有者,但即時通訊仍然得到相同的錯誤。我也嘗試將$_GET更改爲$_POST

這是我的代碼。

<?php 

    $connection = mysqli_connect("db_name", "user", "pass", "db") or die(mysqli_error($con); 

    $user_id = $_GET["user_id"]; 
    $event_id = $_GET["event_id"]; 

    $query = "SELECT * FROM user where user_id BETWEEN('".$user_id."'+1) and ('".$user_id."'+4);"; 
    $query .= "SELECT * FROM user_in_event WHERE user_id = '".$user_id."' AND event_id = '".$event_id."' "; 

    if (mysqli_multi_query($connection, $query) or die(mysqli_error($connection).$query) ){ 
     do { 
    /* store first result set */ 
      if ($result = mysqli_store_result($connection) or die(mysqli_error($con))) { 
       while ($row = mysqli_fetch_assoc($result) or die(mysqli_error($con))) 
        $array[] = $row; 

       mysqli_free_result($result) or die(mysqli_error($con)); 
       } 

      } while (mysqli_next_result($connection) or die(mysqli_error($con))); 
    } 
    header('Content-Type:Application/json'); 
    echo json_encode($array); 

?> 

,這是錯誤

mysqli_error() expects parameter 1 to be mysqli null given 

,我已經在DB本身和querys檢查工作正常

*編輯 固定的 「CON」 到 「連接」,但現在,而不是得到所需的結果即時通訊得到balked

+1

另外,'BWTWEEN'。 – shmosel

+0

你真的使用「BWTWEEN」嗎?還是在問題中輸入錯誤? (應該是「BETWEEN」) – MacPrawn

+0

好吧謝謝,我會更新主要問題,因爲它仍然不能正常工作mysqli_error()期望參數1是mysqli' – styx

回答

0

$查詢=「選擇*從用戶其中user_id BETWEEN( ''。$ user_id。「'+ 1)...
試試這個:
$ query =」SELECT * FROM user where user_id BETWEEN('「。($ user_id + 1)。'')...

+0

得到了相同的結果 – styx

1

mysqli_error()期望第一個參數是一個mysqli資源。在你的情況下,你正在使用一個未定義的變量$con,其中包含一個空值。

一個mysqli資源通常通過調用mysqli_connect連接到數據庫來獲得。

因此,$con應該被替換爲$connectionmysqli_error()

+0

好吧,但現在我得到空白,而不是JSON響應 – styx

+0

然後,你可能在你的代碼我有更多的錯誤。即當你從你的數據庫中獲取值時,$ array只是空的。 – user3606329

+0

由於某種原因超出我的理解現在相同的文件正常工作 – styx

-1

BETWEEN正在尋找簡單的數字。 示例 選擇*從產品 價格介於10和20之間;

您的查詢有一些複雜的格式,可能會導致您的空值。我注意到你有兩個「;」哪裏應該只有一個關閉查詢。它有時有助於簡化。

嘗試查詢之前創建搜索值:

$開始= $ USER_ID + 1; $ end = $ user_id + 4;

然後你的查詢變成 $ query =「SELECT * FROM user where user_id BETWEEN $ start and $ end」;

希望這會有所幫助。