Предупреждение: mysql_fetch_array (): переданный аргумент не является допустимым результатом MySQL

Если я правильно понимаю, когда вы тянете объект, вы не хотите, чтобы достижения также извлекались из базы данных? Если это так, то вы должны использовать это:

@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
    @JoinColumn(name = "candidate_id", nullable=false)
    private List<Achievement> achievements= new ArrayList<Achievement>();

Ленивый тип извлечения не будет извлекать ваши отношения один ко многим, поэтому в этом случае достижения не будут извлечены из базы данных, если вы извлекаете объект это имеет достижения.

41
задан user96828 28 April 2009 в 00:03
поделиться

3 ответа

В вашем запросе должна быть проблема, из-за которой $ result является недопустимым ресурсом.

Попробуйте проверить mysql_error () после строки, в которой вы запускаете query.

Редактировать:

На самом деле, я бы изменил ваш запрос функции класса DBConnector на что-то вроде следующего, чтобы при возникновении неверного запроса выявлялась идентифицируемая ошибка:

function query($query) {
    $this->theQuery = $query;
    $queryId = mysql_query($query,$this->link);
    if (! $queryId) {
        throw new Exception(mysql_error().".  Query was:\n\n".$query."\n\nError number: ".mysql_errno();
    }
    return $queryId;
}
17
ответ дан 27 November 2019 в 00:57
поделиться
// Load settings from parent class
$settings = SystemComponent::getSettings();

// Get the main settings from the array we just loaded
$host = $settings['dbhost'];
$db = $settings['dbname'];
$user = $settings['dbusername'];
$pass = $settings['dbpassword'];

//the settings
$host = 'localhost';
$db = 'xxx';
$user = 'xxx';
$pass = 'xxx';

Вы хотели переназначить переменные соединения? ИЛИ это несколько строк кода заглушки, которые вы забыли вынести? Или просто пример, чтобы показать, что содержит $ settings?

1
ответ дан 27 November 2019 в 00:57
поделиться

Пожалуйста, предоставьте ошибку от mysql_error (). Без этого я могу только догадываться ... попытаться экранировать имена ваших полей?

$result = $connector->query('SELECT `title`,`content` FROM `staff_vacancies` ORDER BY `ordering` LIMIT 0,100');
1
ответ дан 27 November 2019 в 00:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: