-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 に答える