我对此心理敏感。到目前为止,我已经尝试了几个小时。这是任务:
在模块覆盖中,我使用以下代码:
$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_encode以及“和'的不同类型(实际上所有组合)......没有用。
我在phpmyadmin中使用以下sql查询,它可以工作:
SELECT `introtext` FROM `x999x_content` WHERE `title`="Analysen & Auswertungen Infos"
我对此感到困惑,现在非常疲惫和愤怒...... 任何帮助将不胜感激!!!
答案 0 :(得分:2)
有时长时间睡眠是最好的!
我刚刚使用strlen
检查$linktext
的长度(我通过foreach循环从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->选择),如其他答案所述
答案 1 :(得分:0)
你有没有尝试过:
$db =& JFactory::getDBO();
$title = $linktext." Infos";
$query = "SELECT `introtext` FROM `#__content` WHERE `title`='".$title."'";
$db->setQuery($query);
$result = $db->loadRow();
echo $result;
我不知道它是否可行,但我从来没有遇到任何问题,这就是我编写代码的方式。
答案 2 :(得分:0)
尝试更改此行:
$query = "SELECT introtext FROM #__content WHERE title=\"$title\"";
为此:
$query = $db->getQuery( tru );
$query->select( 'introtext' );
$query->from( '#__content' );
$query->where( 'title=' . $db->Quote( $title );
我希望它有所帮助!
答案 3 :(得分:0)
我有这个工作:
<?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);
?>