Что означает (целое число) в этом запросе Mysql? - PullRequest
0 голосов
/ 23 февраля 2012

Спасибо всем.Судя по вашим ответам, похоже, что я отправлю это обратно.Я думал, что это может быть что-то, что я мог бы быстро исправить.

Один из наших клиентов прислал нам скрипт, и в одном из файлов было следующее.

AND catparentid = '".( integer )."'";

Кто-нибудь знает, почему слово «целое число» будет заключено в скобки или что оно должно делать?Я не могу найти ничего об этом в Интернете.Это конечная часть SQL-запроса.Сценарий жалуется на "."в этом запросе, но я подозреваю, что проблема в "целочисленной" части ...?

Это полный запрос ....

$sql = "SELECT * FROM [|PREFIX|]categories WHERE catname = '".$GLOBALS['ISC_CLASS_DB']->quote( $prod )."' AND catparentid = '".( integer )."'";

Спасибо!

Ответы [ 3 ]

0 голосов
/ 23 февраля 2012

Это ошибка PHP, а не MySQL.

Я могу только предположить, что этот сценарий действительно должен делать, но, возможно, они имели в виду приведение переменной к целому, поскольку столбец catparentid является целочисленным типом (что является хорошей идеей) , но переменной на самом деле нет:

$sql = "..AND catparentid = '".( integer ) $catparentid ."'";
//                                         ^ forgot something?

Однако, увидев [|PREFIX|], скорее всего это просто заполнитель , как предлагает Майкл .

0 голосов
/ 23 февраля 2012
AND catparentid = '".( integer )."'";

очень сильно пахнет PHP, где точка используется в качестве конкатенации строк. Я подозреваю, что это было вставлено из PHP-кода и не полностью очищено.

В PHP это создаст строку вида

AND catparentid = '( integer )'
0 голосов
/ 23 февраля 2012

Скорее всего, клиент просто указывает, что значение catparentid должно быть целым числом и что при выполнении запроса в PHP целочисленная переменная должна быть заменена на ( integer ).

// An integer...
$catparentid = 12345;
$sql = "SELECT * FROM [|PREFIX|]categories WHERE catname = '".$GLOBALS['ISC_CLASS_DB']->quote( $prod )."' AND catparentid = '".$catparentid."'";

Или, поскольку в MySQL указывать числовое значение не обязательно:

$sql = "SELECT * FROM [|PREFIX|]categories WHERE catname = '".$GLOBALS['ISC_CLASS_DB']->quote( $prod )."' AND catparentid = $catparentid";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...