Когда я повторяю запрос Zend_Db, он содержит 'ON Array', почему? - PullRequest
1 голос
/ 21 ноября 2011

Запрос Sql:

SELECT test.* FROM test JOIN test_shares
WHERE test.test_id = test_shares.test_id 
AND test_shares.email_address = '$email' 
AND test.url is NOT NULL ORDER BY title ASC;

Переписано как Zend_Db_Select оператор.

$select = $db->select ()
    ->from ( 'test', 'test.*' )
    ->join ( 'test_shares', array () )
    ->where ( 'test.test_id = test_shares.test_id')
    ->where ( 'test_shares.email_address = ?',  '$email')
    ->where ( 'test.url is NOT NULL')
    ->order ( 'title' );
echo $select;

Вывод:

SELECT test.* FROM test JOIN test_shares ON Array 
WHERE test.test_id = test_shares.test_id 
AND test_shares.email_address = '$email' 
AND test.url is NOT NULL ORDER BY title ASC

Пожалуйста, предложите, почему этот 'ON Array' показывает.

1 Ответ

2 голосов
/ 21 ноября 2011

Попробуйте:

$select = $db   ->select ()
    ->from ( 'movie', 'movie.*' )
    ->join(array('movie_shares'),  'movie.movie_id = movie_shares.movie_id');    
    ->where ( 'movie_shares.email_address = ?',  '$email')
    ->where ( 'movie.url is NOT NULL')
    ->order ( 'title' );
echo $select;

Вы предоставляете массив, в котором ожидается строка для предложения ON, поэтому PHP буквально печатает array() вместо строки.

...