mySQL TIMEDIFF Запрос к JS var - ошибка из-за двоеточий - PullRequest
0 голосов
/ 02 марта 2019

Как я могу передать результаты моего MySQL Query с использованием TIMEDIFF в переменную Javascript в том же файле PHP?Я хочу использовать результат в качестве метки текстовой строки.Я получаю ошибку браузера из-за двоеточия в переданных данных.

MySQL:

$mytimediff = 'TIMEDIFF(NOW(), DBTimeStamp) as myTimeDiff';        
$querylast = "SELECT *, $mytimediff FROM user_log ORDER BY LogID DESC LIMIT 1";
$resultlast = mysql_query($querylast);
$rowtimediff = $rowlast['myTimeDiff'];

JS:

var rowage = <?php echo $rowtimediff ?>;

Это приводит к ошибке консоли браузера:

"Uncaught SyntaxError: неожиданный токен:"

Пример вывода ошибки консоли, показывающий двоеточия: "var rowage = 00:00:43;"

Все другие операции MySQL ипеременные проходят нормально.

Ответы [ 2 ]

0 голосов
/ 02 марта 2019

В вашем JS-коде попробуйте заключить в php-код двойные кавычки, например:

var rowage="<?php cho $rowtimediff; ?>";
0 голосов
/ 02 марта 2019

Json-кодирует переменную PHP при печати, если вы хотите использовать ее в Javascript.

<?php
    $rowtimediff = ['foo' => 1, 'bar' => 2, 'baz' => 3];
?>
<script>
    var rowage = <?= json_encode($rowtimediff) ?>;
    console.log(rowage);
</script>

В результате вы получите действительный код Javascript:

<script>
    var rowage = {"foo":1,"bar":2,"baz":3};
    console.log(rowage);
</script>

Кроме того, при работе со строками вы можете просто обернуть эту инъекцию PHP в кавычки (числа не требуют кавычек), например:

var rowage = "<?= $rowtimediff ?>";
...