-5

我正在尝试在函数中运行 SQL 语句,但是当我这样做时,什么也没有发生。

这是我的代码....

<?php 

$id = 47665;
function call($id)
{

$getBookTitle = $this->EE->db->query("SELECT b.title
                                      FROM books as b
                                      WHERE b.side = 'open'
                                      AND b.swarm_suit = 1
                                      AND b.book_id = ".$id. "
                                      ");

$variable;
foreach ($getBookTitle ->result_array() as $key)
{
  $variable = $key['title'];
}

echo $variable;
}

call(0254);
?>

如果我在函数外部运行这个 SQL 语句,它会完美运行。

帮助,有人吗?

4

2 回答 2

1

您的 foreach 正在迭代一个不存在的变量。

不应该foreach( $getBookTitle


关于您遇到的范围问题。我建议您定义一个新的数据库句柄。

$mysqli = new mysqli("localhost", "my_user", "my_password", "database");
$mysqli->query("SELECT b.title
                                      FROM books as b
                                      WHERE b.side = 'open'
                                      AND b.swarm_suit = 1
                                      AND b.book_id = ".$id. "
                                      ");
于 2013-03-21T10:13:16.820 回答
0

什么?未定义$getRestaurantName

$this在函数内部使用,而不是在对象方法中使用!

<?php

$id = 47665;
function call($id)
{
    /*
     * What is $this? Where is class?
     */
    $getBookTitle = $this->EE->db->query("SELECT b.title
                                          FROM books as b
                                          WHERE b.side = 'open'
                                          AND b.swarm_suit = 1
                                          AND b.book_id = ".$id. "
                                          ");

    $variable; // Notice: undefined variable

    foreach ($getBookTitle ->result_array() as $key)
    {
      $variable = $key['title'];
    }

    echo $variable;
}

似乎您很简单地关闭了所有 PHP 错误和警告。

更新

<?php

// Just for example
class _class {
    public $EE; // Your 'EE' definition

    private static $instance;

    public static function getInstance() {
        if(!self::$instance) self::$instance = new self();
        return self::$instance;
    }
}

function call($id)
{
    $obj = _class::getInstance(); // You should get instance of object where 'EE' defined. Use singletone pattern for this.

    $getBookTitle = $obj->EE->db->query("SELECT b.title
                                        FROM books as b
                                        WHERE b.side = 'open'
                                        AND b.swarm_suit = 1
                                        AND b.book_id = ".$id. "
                                        ");

    $variable = NULL;

    foreach ($getBookTitle ->result_array() as $key)
    {
        $variable = $key['title'];
    }

    echo $variable;
}
call(0254);
于 2013-03-21T10:21:15.540 回答