Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当查询具有与符号时,Joomla 1.7 DB查询不起作用_Php_Mysql_Sql_Joomla_Ampersand - Fatal编程技术网

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年前提出来的。对吗?