Php 当查询具有与符号时,Joomla 1.7 DB查询不起作用
我在这件事上有点神经质了。到目前为止,我已经试了好几个小时了。任务如下: 在模块覆盖中,我使用以下代码:Php 当查询具有与符号时,Joomla 1.7 DB查询不起作用,php,mysql,sql,joomla,ampersand,Php,Mysql,Sql,Joomla,Ampersand,我在这件事上有点神经质了。到目前为止,我已经试了好几个小时了。任务如下: 在模块覆盖中,我使用以下代码: $db =& JFactory::getDBO(); $title = "Analysen & Auswertungen Infos"; $query = "SELECT introtext FROM #__content WHERE title=\"$title\""; $db->setQuery($query); $result = $db->loadRow(
$db =& JFactory::getDBO();
$title = "Analysen & Auswertungen Infos";
$query = "SELECT introtext FROM #__content WHERE title=\"$title\"";
$db->setQuery($query);
$result = $db->loadRow();
echo $result;
这是可行的,但由于我从一个变量动态获取$title
,因此我需要这样做:
$db =& JFactory::getDBO();
$title = "$linktext Infos";
$query = "SELECT introtext FROM #__content WHERE title=\"$title\"";
$db->setQuery($query);
$result = $db->loadRow();
echo $result;
我有6个变量在foreach循环中填充$linktext
,除了包含“&”
我在查询中尝试了htmlentities和utf8_编码以及不同类型(实际上是所有的组合)的“and”…没有任何效果
当我在phpmyadmin中使用以下sql查询时,它可以工作:
SELECT `introtext` FROM `x999x_content` WHERE `title`="Analysen & Auswertungen Infos"
我真的很困惑,现在很累很生气。。。
非常感谢您的帮助!!!您是否尝试过:
$db =& JFactory::getDBO();
$title = $linktext." Infos";
$query = "SELECT `introtext` FROM `#__content` WHERE `title`='".$title."'";
$db->setQuery($query);
$result = $db->loadRow();
echo $result;
我不知道它是否有效,但我从来没有遇到过任何问题,这就是我编写代码的方式。尝试更改此行:
$query = "SELECT introtext FROM #__content WHERE title=\"$title\"";
为此:
$query = $db->getQuery( tru );
$query->select( 'introtext' );
$query->from( '#__content' );
$query->where( 'title=' . $db->Quote( $title );
我希望能有帮助!有时候,长时间的睡眠是你能做的最好的事情 我刚刚使用
strlen
检查了$linktext
的长度(我通过foreach循环从DB获得),发现它比可见字符长。这是合乎逻辑的,因为和返回为&;
为了在新的DB查询中使用这个$linktext
,我需要做的就是解码html实体:
$db =& JFactory::getDBO();
// this is the correct way of doing it
$title = html_entity_decode($linktext)." Infos";
$query = "SELECT introtext FROM #__content WHERE title=\"$title\"";
$db->setQuery($query);
$result = $db->loadRow();
或任何其他查询组合(“,”,`,$query->select),如其他答案中所述我得到了以下结果:
<?php
$servername = "";
$username = "";
$password = "";
$dbname = "";
$keyvalue='101';
$conn = new mysqli($servername, $username, $password, $dbname);
$sql = "SELECT * FROM mytable WHERE keyfield='".$keyvalue."'";
$result = $conn->query($sql);
if($result && $row = $result->fetch_assoc()) {
$fsql='DESCRIBE mytable';
$fresult = $conn->query($fsql);
if($fresult){
while($frow = $fresult->fetch_assoc()) {
$fieldname=$frow['Field'];
echo($fieldname . ' = ' . $row[$fieldname] . '<br><br>');
}
}
}else echo("Failed: " . $sql);
?>
是的。。。你什么都试过了。。。“,”,“…只是为了确保我也尝试过你的方法。它不起作用。但是所有其他$linktext都起作用!使用我和你的解决方案。它只是一个包含”&"... 这真是令人毛骨悚然。也许这与我从DB获得的$linktext有关?也许里面有某种扭曲的特征。。。但我也在$linktext上尝试了htmlentities和类似的功能…不,和上面一样。。。所有其他$linktext工作,但其中包含&的工作除外。。。但是谢谢你的努力!顺便说一句,有两个输入错误:第1行应该是(真的),第4行缺少一个);你知道这个问题是6年前提出来的。对吗?