【问题标题】:Php code does not come out from MySQL Database properlyPHP 代码没有正确地从 MySQL 数据库中出来
【发布时间】:2015-08-28 18:23:17
【问题描述】:

我试图从 MYSQL 数据库中循环 PHP CODE 数据,但是当它被回显时看起来不同。

这是我的 PHP 代码:

<?php

mysql_connect("localhost","root","");
mysql_select_db("myweb");


?>

<table width="100%" border="1">
<?php
$query=mysql_query("SELECT * FROM right_widgets ORDER BY right_widgets_id ASC");
while($rows2=mysql_fetch_assoc($query))
{ 
    $right_widgets_id=$rows2['right_widgets_id'];
    $func_name=$rows2['func_name'];
    $active_status=$rows2['active_status'];

?>
  <tr>
    <td><?php echo $func_name; ?></td>
    </tr>
<?php
}
?>
  </table>

这是我的 SQL 代码:

--
-- Database: `myweb`
--

-- --------------------------------------------------------

--
-- Table structure for table `right_widgets`
--

CREATE TABLE IF NOT EXISTS `right_widgets` (
  `right_widgets_id` int(11) NOT NULL,
  `func_name` text NOT NULL,
  `active_status` text NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;

--
-- Dumping data for table `right_widgets`
--

INSERT INTO `right_widgets` (`right_widgets_id`, `func_name`, `active_status`) VALUES
(1, '<?php get_search_engine(); ?>', 'true'),
(2, '<?php get_clock(); ?>', 'true'),
(3, '<?php get_virtual_nav_menu(); ?>', 'false'),
(4, '<?php get_non(); ?>', 'false');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `right_widgets`
--
ALTER TABLE `right_widgets`
  ADD PRIMARY KEY (`right_widgets_id`);

--
-- AUTO_INCREMENT for dumped tables
--

问题是它运行时看起来像这样:

但我需要这个:

<?php get_search_engine(); ?>

【问题讨论】:

  • 您希望执行数据库中的 PHP 代码吗?这是不可能的,除非你使用eval() (DON"T USE EVAL),或者将检索到的代码写到一个文件中,然后包含/需要它... PHP 和 mysql 将 为您注释掉代码。如果它在您的输出中被注释掉,那么它会作为注释进入数据库。
  • 如果您仍想将其输出为字符串而不是函数,请使用&lt;?=str_replace(array('&lt;'),'&amp;lt;','&lt;?php test() ?&gt;') ?&gt;
  • @castis 我会觉得有动力去教育自己,OP 也应该如此。
  • 如果可以的话,你应该stop using mysql_* functions。它们不再被维护并且是officially deprecated。改为了解 prepared statements,并考虑使用 PDO,it's really not hard
  • @AsifUzZaman 在这里&lt;td&gt;&lt;?php echo $func_name; ?&gt;&lt;/td&gt; 喜欢这个&lt;td&gt;&lt;php echo str_replace('&lt;','&amp;lt;',$func_name) ?&gt;&lt;/td&gt;

标签: php mysql while-loop phpmyadmin echo


【解决方案1】:

请修改你的表值ok,你的sql代码

INSERT INTO `right_widgets` (`right_widgets_id`, `func_name`, `active_status`) VALUES
(1, '<?php get_search_engine(); ?>', 'true'),
(2, '<?php get_clock(); ?>', 'true'),
(3, '<?php get_virtual_nav_menu(); ?>', 'false'),
(4, '<?php get_non(); ?>', 'false');

这意味着您的表列名称是 func_name 并且值是 &lt;?php get_search_engine(); ?&gt; 好的,请像这样修改值 get_search_engine(); 删除所有 &lt;?php ?&gt; 我希望这会起作用。 谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-15
    • 2016-08-23
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 2013-02-14
    • 2016-03-29
    • 2015-07-26
    相关资源
    最近更新 更多