SQL Query不会打印varchar / text列

时间:2015-03-24 15:53:55

标签: php mysql sql select varchar

我的SQL查询有点问题......

我调试了问题所在的位置,并意识到varchar/text列似乎停止了我的php函数。

这是我的代码:

$queryTest = mysqli_query($link, "SELECT dos_nom,dos_id FROM dossier");

while($dataTest = mysqli_fetch_assoc($queryTest)) {

if($dataTest['dos_id'] == $myparameter) {
    $toreturn.= '<option class="text-'.$dataTest['dos_id'].'" value="'.$dataTest['dos_nom'].'" selected>'.$dataTest['dos_nom'].'</option>';
            }
        }

问题在于值$dataTest['dos_nom']。没有它我的查询工作(它正常打印页面),但我不知道为什么。有了它,它不起作用(它打印页面的顶部,没有/我的PHP功能之后)......

确切地说,我在ajax函数中使用它。

提前致谢!

编辑:我试图从'dos-nom'只打印一行,它有效!但是当我尝试打印超过1行时,该功能停止了!

我的代码:

$queryTest2 = mysqli_query($link, "SELECT * FROM dossier");
while($dataTest2 = mysqli_fetch_assoc($queryTest2)) 
        {                   
           $test[0] = $dataTest2['dos_nom'];
        }
if($dataTest['dos_id'] == $dos_id) 
  {
    $toreturn.= '<option class="text-'.$dataTest['dos_id'].'" >'.$test[0].'</option>';
  }

它只会以这种方式打印最后一行。如果我在查询中放置一个WHERE它将停止该功能,所以我不知道该怎么做!

解答:

É/À在我的数据库中,我用E和A替换它们,问题解决了!

2 个答案:

答案 0 :(得分:0)

我发现您的代码没有任何问题,除了逻辑 - 您只在选择选项时输出。

正如你所说(它什么都不打印)

让我们尝试打印一些东西:

$queryTest = mysqli_query($link, "SELECT dos_nom,dos_id FROM dossier");

while($dataTest = mysqli_fetch_assoc($queryTest)) {

    $selected = ($dataTest['dos_id'] == $myparameter)?' selected ':' ';
    $toreturn.= '<option class="text-'.$dataTest['dos_id'].'" value="'.$dataTest['dos_nom'].'" '.$selected.'>'.$dataTest['dos_nom'].'</option>';

}

答案 1 :(得分:0)

尝试使用像

这样的addslashes()函数
 addslashes($dataTest['dos_nom'])

这个值可能包含一些反斜杠或一些可能破坏你代码的垃圾字符