使用变量作为列名在MYSQL PHP脚本中不起作用

时间:2012-02-03 00:56:16

标签: php mysql variables

如果我的问题没有意义,我道歉。从下面的代码中可以看出,它扫描PHP文件,在{( )}之间抓取文本并将其存储到$match

现在我要做的是在查找列$match的表上进行查询,其中pageid等于URL中的pageid以及字段不为空的位置。到目前为止,它只在文本区域中返回Array。

我是否正确设置了代码,或者我错过了一些简单的内容?我知道扫描部分正在工作,因为如果我回应匹配,我会在{( )}区域之间得到文本。由于某种原因它只是没有正确的查询。或者就像我说我错过了一些东西。任何帮助都会很棒。如果您需要更多信息,请与我们联系。 (我没有收到任何MySQL错误。)

$fn = "../templates/".$templateid.".php";

$file = file_get_contents($fn);

preg_match_all("#\{\('(\w+)'\)}#", $file, $matches);   

foreach ($matches[1] as $match) 
    {
    $result = mysql_query("SELECT * FROM pages WHERE $match IS NOT NULL AND linklabel = '$pageID'") or die("Err: ".mysql_error());

    $res = mysql_fetch_array($result);
    $content = $res;
    echo " <div id='tabs-".$match."'>
           <textarea id='".$match."' name='content-".$match."' class='fieldsetstyle'>".$content."</textarea>
                     <script type='text/javascript'>
                     CKEDITOR.replace( '".$match."' );
                     </script>
           </div>";
    }

2 个答案:

答案 0 :(得分:3)

$ res是一个数组,所以尝试输出正确的列,比如

echo $res['linklabel'];

或尝试var_dump()

var_dump($res);


$content = $res; // Still, $content is an array, not text

答案 1 :(得分:0)

试试这个

 $result = mysql_query("SELECT * FROM pages WHERE ".$match." IS NOT NULL AND linklabel = '".$pageID."'") or die("Err: ".mysql_error());

尝试此更新

替换此

 foreach ($matches[1] as $match) 

有了这个

foreach ($matches[1][1] as $match)