Если .stop()
устарел, я не думаю, что мы должны повторно добавить его, как @MuazKhan. Это причина того, почему вещи устаревают и больше не должны использоваться. Просто создайте вспомогательную функцию ... Вот еще версия es6
function stopStream (stream) {
for (let track of stream.getTracks()) {
track.stop()
}
}
Если оператор PDO возвращает FALSE
, это означает, что запрос завершился неудачно. Вы должны установить PDO в режиме надлежащей регистрации ошибок, чтобы знать об ошибке.
Поместите эту строку в свой код сразу после подключения
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
. После получения сообщения об ошибке, вы должны читать и понимать это. Это звучит слишком очевидно, но учащиеся часто упускают из виду чрезвычайную полезность сообщения об ошибке. Однако большую часть времени это объясняет проблему довольно просто. Скажем, если в нем указано, что конкретная таблица не существует, вы должны проверить орфографию, опечатки, регистр букв, учетные данные и т. Д. Или, если он говорит, что в синтаксисе SQL есть ошибка, вам нужно изучить ваш SQL. И проблема находится прямо перед частью запроса, указанной в messaage ошибки.
Вы также должны доверять сообщение об ошибке. Если он говорит, что число токенов не совпадает с числом связанных переменных, то оно равно . То же самое касается отсутствующих таблиц или столбцов. Учитывая выбор, независимо от того, является ли ваша собственная ошибка или сообщение об ошибке неправильным, всегда придерживайтесь первого. Снова это звучит снисходительно, но сотни вопросов на этом сайте доказывают, что это очень полезно.
Обратите внимание, что для того, чтобы увидеть ошибки PDO, вы должны уметь видеть ошибки PHP вообще. Для этого вам нужно настроить PHP в зависимости от среды сайта:
error_reporting(E_ALL);
ini_set('display_errors',1);
error_reporting(E_ALL);
ini_set('display_errors', 0);
ini_set('log_errors', 1);
Обратите внимание, что error_reporting
должно быть установлено на E_ALL
все время.
Также обратите внимание, что, несмотря на общее заблуждение, для сообщения об ошибках не должно использоваться никаких попыток. PHP сообщит вам об ошибках PDO уже и в лучшем виде. Невыставленное исключение очень полезно для разработки, но если вы хотите показать настроенную страницу ошибки, по-прежнему не используйте try catch для этого, но только установите собственный обработчик ошибок . В двух словах вам не нужно рассматривать ошибки PDO как нечто особенное, но рассматривать их как любую другую ошибку в вашем коде.