首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql查询的问题,错误的编码?

mysql查询的问题,错误的编码?
EN

Stack Overflow用户
提问于 2011-12-29 07:21:19
回答 2查看 178关注 0票数 0

我正在尝试执行以下PHP / MySQL查询,它对前两组很好,但对于其他所有人,我得到了一个MySQL错误,这是正确的吗?

代码语言:javascript
复制
$user =& JFactory::getUser();
$N = $user->get('name'); 
$username = $user->get('username');
$groups = $user->get('groups');

foreach($groups as $groupName=>$groupId)
{
}

$G=$groupName;

if ($G=="Management Staff")
    $result = mysql_query("SELECT * FROM hqfjt_chronoforms_data_addupdatelead");
elseif ($G=="Website Developers")
    $result = mysql_query("SELECT * FROM hqfjt_chronoforms_data_addupdatelead");
else
    $result = mysql_query("SELECT * FROM hqfjt_chronoforms_data_addupdatelead WHERE createdby=$N");

当我以其他任何人的身份登录时,我会看到:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\server2go\server2go\htdocs\chandlers\components\com_jumi\views\application\view.html.php(38) : eval()'d code on line 87

Warning: mysql_free_result() expects parameter 1 to be resource, boolean given in C:\server2go\server2go\htdocs\chandlers\components\com_jumi\views\application\view.html.php(38) : eval()'d code on line 132

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-29 07:25:25

代码语言:javascript
复制
$result = mysql_query("SELECT * FROM hqfjt_chronoforms_data_addupdatelead WHERE createdby=$N");

是可疑的,应该是

代码语言:javascript
复制
$result = mysql_query("SELECT * FROM hqfjt_chronoforms_data_addupdatelead WHERE createdby='$N'");

请确保,$N中没有任何邪恶的东西。

票数 0
EN

Stack Overflow用户

发布于 2011-12-29 07:26:11

我不确定这是不是你的一个糟糕的复制/粘贴到stackoverflow的工作,但看起来你的花括号都出问题了。我想你会想要更多这样的东西:

代码语言:javascript
复制
$username = $user->get('username');
$groups = $user->get('groups');
foreach($groups as $groupName=>$groupId) {
  $G=$groupName;
  if ($G=="Management Staff")
    $result = mysql_query("SELECT * FROM hqfjt_chronoforms_data_addupdatelead");
  elseif ($G=="Website Developers")
    $result = mysql_query("SELECT * FROM hqfjt_chronoforms_data_addupdatelead");
  else
    $result = mysql_query("SELECT * FROM hqfjt_chronoforms_data_addupdatelead WHERE     createdby=$N");
}

这样你的foreach循环就会实际执行下面的代码。你粘贴到问题中的代码有一个for each循环,它不会在循环中执行任何东西,因为它是这样编写的:

代码语言:javascript
复制
foreach($groups as $groupName=>$groupId) {}

然后继续尝试在循环外部使用foreach循环中的一个变量:

代码语言:javascript
复制
$G=$groupName;
if ($G=="Management Staff")
...

这将不起作用,因为$groupName变量将仅在foreach循环的作用域内设置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8662390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档