【问题标题】:php Toolkit rather than a frameworkphp 工具包而不是框架
【发布时间】:2013-05-14 19:58:05
【问题描述】:

我想制作自己的 php 工具包,而不是使用现有的众多框架之一,特别是因为它们遵循 MVC,这不是我现在要寻找的。我想从基础开始,考虑到 OO,我想要一个简单的 php mysql 连接在一个单独的文件(config.php)中,查询在另一个文件(index.php)

我试过这个,但它不起作用。我做错了什么?

根目录下的config.php

<?php
$dsn = 'mysql:dbname=testdb;host=localhost';
$username = 'root';
$password = 'root';
$dbh = new PDO($dsn, $username, $password);
?>

根目录下的index.php

<html>
<body>
<form action="" method="POST">
    <input type="text" name="search" autofocus />
    <input type="submit" value="search" />
</form>
</body>
</html>

<?php
require_once 'config.php';
$query = "SELECT * FROM table WHERE field = '" . $search . "'";
$results = mysql_query($query);
while($row = mysql_fetch_array($results)){ ?>
<li>
<?php echo $row['field']; ?>
</li>   
<?php } ?>

更新:请耐心等待,我对此的了解是新的。谢谢。

【问题讨论】:

  • 在尝试构建自己的框架之前,也许您应该花一些时间来熟悉现有框架以及它们的工作原理?
  • 如果您对“框架部分”感兴趣,请考虑查看 Zend Framework 和 Symfony2。 ZF 是一个组件框架,这意味着您可以随心所欲地使用。 Symfony2 是全栈的,这意味着大多数人按原样使用它,但它包含许多可以像 ZF 一样独立使用的组件。如果您将此作为学习练习,那么就足够公平了,但如果是为了生产,您应该真的使用现有系统。
  • 我是反过来看的。我想学习从头开始构建自己的框架,以了解和理解其他框架是如何工作的。那和逐渐学习php。你认为按照你的建议做会更好吗?我认为学习手动变速箱将是自动变速箱之前的第一步。
  • 是的,我认为学习现有框架对我来说是向前迈出的一大步。 symfony 1 在这方面非常有帮助,尽管 Symfony2 在架构上结构更好。学习一个领先的框架——它是一种可转移的技能——然后如果你愿意,就去做。

标签: php mysql oop pdo


【解决方案1】:

您正在混合使用 mysql_*PDO... 将您的查询写入 PDO 并摆脱 mysql_* 业务。

【讨论】:

  • 好的,我该怎么做,Michal 的解决方案(如下)是否符合要求。我试过了,还是不行。
【解决方案2】:

而不是

$query = "SELECT * FROM table WHERE field = '" . $search . "'";
$results = mysql_query($query);

使用类似的东西

$stmt = $dbh->prepare("SELECT * FROM table WHERE field = :search");
$params = array(':search' => $search);

$res = $stmt->execute($params);

$results = $res->fetchAll();
..

【讨论】:

  • 试过了,没用。我不得不说我对这一切都很陌生。退一步,使用上面的两个文件,我如何确保我的连接和数据库选择工作正常?
  • 将我的连接更改为 mysql 并返回正常查询,仍然没有。
【解决方案3】:

要确保包含您的 config.php 文件,只需在 index.php 中的 require 语句后打印出您的 $dbh 变量

require_once 'config.php';
print_r($dbh);

你应该得到某种打印出来的句柄。

【讨论】:

  • 谢谢迈克尔,你的评论给了我一个想法。和this一起去了。
  • @brbcoding 好的。您建议我不应该使用什么,请您详细说明/解释我应该使用什么以及如何使用它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-18
  • 1970-01-01
  • 2011-03-04
  • 2014-05-25
  • 2010-12-31
  • 1970-01-01
相关资源
最近更新 更多