PHP查询中的变量

时间:2016-12-29 20:41:55

标签: php mysql variables mysqli

在我提出问题之前,我看过here(还有很多其他地方)。

我尝试使用以下格式'".$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

我已经检查了数据库本身并且查询工作正常

*修改 固定&#34; con&#34;到&#34;连接&#34;但现在而不是得到所需的结果我得到balnk

3 个答案:

答案 0 :(得分:1)

mysqli_error()期望第一个参数是mysqli资源。在您的情况下,您使用的是未定义的变量$con,其中包含空值。

通常通过调用mysqli_connect来连接数据库来获取mysqli资源。

因此,$con应替换为$connection中的mysqli_error()

答案 1 :(得分:0)

$ query =&#34; SELECT * FROM user user_id BETWEEN(&#39;&#34;。$ user_id。&#34;&#39; +1)......
试试这个:
$ query =&#34; SELECT * FROM user user_id BETWEEN(&#39;&#34;。($ user_id + 1)。&#34;&#39;)...

答案 2 :(得分:-1)

BETWEEN正在寻找简单的数字。 例 SELECT * FROM产品 价格在10和20之间的价格;

您的查询有一些复杂的格式,可能会导致您的空值。我注意到你有两个“;”应该只有一个关闭查询。它有时有助于简化。

尝试在查询之前创建搜索值:

$开始= $ USER_ID + 1; $结尾= $ USER_ID + 4;

然后你的查询就变成了 $ query =“SELECT * FROM user其中user_id BETWEEN $ start和$ end”;

希望这有帮助。