【问题标题】:Joomla, Mysql errorJoomla,Mysql 错误
【发布时间】:2009-10-27 08:42:07
【问题描述】:

我已将包含以下代码的页面上传到我的 joomla 根目录。

<?php
$value = trim($_POST['opts']);

if ($value){ 
$db = "my_db";
$link = mysql_connect('localhost',$me,$my_password);

if(!$link) die("Error 1 ".mysql_error());

mysql_select_db($db);

 **$query =  "SELECT introtext,fulltext FROM jos_content WHERE title='$value' ";** 

 $result = mysql_query($query);

 **if(!$result) die("Error 2 ".mysql_error());**

 $obj = mysql_fetch_array($result);

 $obj_f = $obj[0];

 $lenght = strlen($obj_f);
 $header2 = strpos($obj_f, "Did you know");
 $header3 = strstr($obj_f, "Summary");

$third_part = $header3; 
$first_part = substr($obj_f, 0, ($header2 - 1));
$second_part = substr($obj_f, $header2,((strpos($obj_f, "Summary")) - $header2) );             
 }
?>

问题是,当我更改我的选择(http://sanatural.co.za/sanp/test.php)时,我收到以下错误消息: 错误 2 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'fulltext FROM jos_content WHERE title='Arthritis'' 附近使用正确的语法

以粗体突出显示的代码是我认为问题所在。请帮忙。

【问题讨论】:

  • 用反引号试试introtext`, `fulltext`, `title`, `jos_content。

标签: php mysql joomla


【解决方案1】:

全文是 mysql 关键字,您必须对其进行转义。替换:

$query = "SELECT introtext,fulltext FROM jos_content WHERE title='$value' ";

与

$query = "SELECT `introtext`,`fulltext` FROM jos_content WHERE title='$value' ";

【讨论】:

  • 感谢您的帮助,这是我第一次使用这个平台。
  • @Qawe:这是您第一次使用 joomla 或 Stackoverflow?如果此解决方案对您有用,您可以将此答案标记为“已接受”并帮助其他人。
【解决方案2】:

这有点离题,但在 Joomla 中使用 PHP 的一种简单方法是通过 PHP 组件。 http://www.fijiwebdesign.com/products/joomla-php-pages.html 这允许您在 Joomla 中添加 PHP,就好像它是 Joomla 组件一样。

如果你想要快速的东西,那么你也可以使用 PHP 模块。 http://www.fijiwebdesign.com/products/joomla-php-module.html

只需安装其中一个,添加您的 PHP,然后将其添加到 Joomla 菜单。 然后,您可以使用 Joomla API,这将简化您想要在 Joomla 中执行的操作。

例如,您的数据库查询可能是:

// Joomla already has a connection to the DB 
// available here as a Singleton in the Factory pattern
$Db =& JFactory::getDBO();

// querying the db
$Db->setQuery('SELECT `introtext`,`fulltext` FROM #__content WHERE title='.$Db->Quote($value).' LIMIT 1';
// retrieving a single row as an object
$article = $Db->loadObject();
// handle errors
if($Db->getErrorNum()) {
   JError::raiseError( 500, $Db->stderr());
}

//Then accessing each column/property would look something like:

$intro = $article->introtext;
$text = $article->fulltext;

完整的数据库 API 记录在这里: http://api.joomla.org/Joomla-Framework/Database/JDatabase.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-02
    • 2010-11-14
    • 2018-05-24
    • 2013-05-10
    相关资源
    最近更新 更多