在SQL查询执行中遇到问题

时间:2010-06-03 09:49:50

标签: php mysql mysql-error-1064

我在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)

你能帮我吗?

3 个答案:

答案 0 :(得分:5)

如果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%的问题可以通过这种方式被发现和解决。

答案 1 :(得分:0)

如果它在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());

它现在应该运行。

答案 2 :(得分:-2)

嗯 - 你为什么不连接?

"SELECT `ID`, `Nm`, `Address`, date_format(`DateOfBirth`, '%d%M%Y') as DateOfBirth 
FROM `PersonalDetails` where `UserMasterID` = '" . $userid . "'";

但是约瑟夫在...... {/ p>