2016-12-29 75 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”;

希望这会有所帮助。