У меня проблема с выполнением sql-запроса. Я использую этот sql-запрос:
$userid = 1;
$sql = mysql_query("
SELECT ID, Nm, Address, date_format(DateOfBirth, '%d%M%Y') as DateOfBirth
FROM PersonalDetails where UserMasterID = $userid
") or die (mysql_error());
Результат выглядит как:
У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MySQL, для правильного синтаксиса, используемого рядом с '= 'в строке 1
Когда я выполняю это в PHPMyAdmin, он работает правильно. Я использую mysql (5.0.5b) и PHP (5.2.6)
Можете ли вы мне помочь?
Если UserMasterID
не является целым числом, вам может потребоваться поставить кавычки вокруг значения:
PersonalDetails where UserMasterID = '$userid'"
Запрос, который вы цитируете выше, не идентичен тому, что вы запускаете в phpMyAdmin. Он содержит переменную PHP. Когда в SQL-проблемах всегда выводится и анализируется анализируемый запрос (без ссылок на переменные PHP в них).
$query = "select ID... etc. etc.";
$result = mysql_query($query);
if (!$result)
echo "Error in query $query: ".mysql_error();
90% проблем можно обнаружить и решить таким образом.
trigger_error
, хорошая мысль. Но там есть $query
, не так ли? Или я что-то упускаю?
Если он работает корректно в PHPMyAdmin, но не в PHP-коде, то это говорит мне, что PHPMyAdmin выполняет известную задачу ускользания и дезинфекции всего, что возможно.
Измените свой код и проверьте его.
$userid = 1;
$sql = mysql_query("
SELECT `ID`, `Nm`, `Address`, date_format(`DateOfBirth`, '%d%M%Y') as DateOfBirth
FROM `PersonalDetails` where `UserMasterID` = '{$userid}'
") or die (mysql_error());
Теперь он должен выполняться.
Ehhh - почему бы вам не объединиться?
"SELECT `ID`, `Nm`, `Address`, date_format(`DateOfBirth`, '%d%M%Y') as DateOfBirth
FROM `PersonalDetails` where `UserMasterID` = '" . $userid . "'";
но Джозеф находится на месте...