0

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

你能帮我吗?

4

3 回答 3

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

于 2010-06-03T09:52:37.570 回答
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());

它现在应该运行。

于 2010-06-03T13:28:36.000 回答
-2

Ehhh - 你为什么不连接?

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

但约瑟夫是现场...

于 2010-06-03T13:53:49.723 回答