SQL 查询不打印 varchar/text 列
SQL Query doesn't print varchar/text column
我的 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']
中。没有它我的查询工作(它正常打印页面),但我不知道为什么。有了它,它不起作用(它打印页面顶部,什么都没有 from/after 我的 php 功能)...
准确地说,我在 ajax 函数中使用它。
提前致谢!
编辑:我试图从 'dos-nom' 中只打印 1 行,它有效!但是当我尝试打印多于 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 替换了它们,问题解决了!
我看不出你的代码有什么问题,除了逻辑 - 你只在选择选项时输出。
正如你所说(它什么都不打印)
让我们尝试打印一些东西:
$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>';
}
尝试像
一样使用 addslashes() 函数
addslashes($dataTest['dos_nom'])
也许该值包含一些反斜杠或一些可能会破坏您的代码的垃圾字符
我的 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']
中。没有它我的查询工作(它正常打印页面),但我不知道为什么。有了它,它不起作用(它打印页面顶部,什么都没有 from/after 我的 php 功能)...
准确地说,我在 ajax 函数中使用它。
提前致谢!
编辑:我试图从 'dos-nom' 中只打印 1 行,它有效!但是当我尝试打印多于 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 替换了它们,问题解决了!
我看不出你的代码有什么问题,除了逻辑 - 你只在选择选项时输出。
正如你所说(它什么都不打印)
让我们尝试打印一些东西:
$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>';
}
尝试像
一样使用 addslashes() 函数 addslashes($dataTest['dos_nom'])
也许该值包含一些反斜杠或一些可能会破坏您的代码的垃圾字符