2011-12-11 5 views
0

私はこれに精神を得ています。私はこれまで何時間も何度も試してみました。ここでの作業です:モジュールのオーバーライドでクエリがアンパサンドを持つ場合、Joomla 1.7のDBクエリは機能しません

、私はこのコードを使用します

$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; 

私は、foreachループで$linktextを移入6つの変数、「&」を含む文字列と1を除くすべての作業を...持って

私はhtmlentitiesとutf8_encodeを試してみましたが、 "and"という異なる種類(実際はすべての組み合わせ)のクエリでは何もできませんでした。私はphpMyAdminの中で次のSQLクエリを使用WHE

は、それが動作します:

SELECT `introtext` FROM `x999x_content` WHERE `title`="Analysen & Auswertungen Infos" 

私はこれ以上は本当に困惑し、今非常に疲れて怒っては... すべてのヘルプは大歓迎されます!

答えて

2

場合によっては長時間の睡眠が最高です。

$linktext(私はforeachループを介してDBから取得しました)の長さを確認するのにちょうどstrlenを使用しましたが、それは可視の文字よりも長いことがわかりました。 &&として返されるため、これは論理的です。私が行うために必要なすべては、HTMLエンティティをデコードすることでした新しいDBクエリ内で、この$linktextを使用するためには

、:

$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-私はこの作業を得た他の回答

0

あなたは試すました:

$db =& JFactory::getDBO(); 
$title = $linktext." Infos"; 
$query = "SELECT `introtext` FROM `#__content` WHERE `title`='".$title."'"; 
$db->setQuery($query); 
$result = $db->loadRow(); 
echo $result; 

それがうまくいくならば、私は知らないが、私は何の問題を持っていることはありません、これは私が私のコードを書く方法です。

+0

ええ...すべてを試しました...」、 '、 '...ちょうど私確認しますあなたのやり方も試してみました。それは仕事をしなかった。他のすべての$ linktextは動作します!私とあなたのソリューションと一緒に。 "&"が入っているのはちょうどこの単一のものです...これは本当にうごめです。多分それは私がDBから得ている$ linktextと関係がありますか?たぶんそこに何らかの文字が入っているかもしれないけど... $ linktextでもhtmlentitiesと同様のことをやってみた... – deeno

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); 

私はそれが助けを願って!

+0

他と同じ$ linktext仕事、&を付けたものを除いて...でも試してみてくれてありがとう! – deeno

+0

btw、2 typos: line1は真(true) と line4が欠落しています。 – deeno

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); 

?> 
+0

あなたはこの質問が6年前に尋ねられたことを理解しています。右? –

関連する問題