Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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工具包而不是框架_Php_Mysql_Oop_Pdo - Fatal编程技术网

php工具包而不是框架

php工具包而不是框架,php,mysql,oop,pdo,Php,Mysql,Oop,Pdo,我想制作自己的php工具包,而不是使用许多框架中的一个,特别是因为它们遵循MVC,这不是我现在想要的。我想从基础开始,记住OO,我想在一个单独的文件(config.php)中创建一个简单的php mysql连接,在另一个文件(index.php)中创建查询 我试过了,但没用。我做错了什么 根目录中的config.php <?php $dsn = 'mysql:dbname=testdb;host=localhost'; $username = 'root'; $password = 'ro

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

我试过了,但没用。我做错了什么

根目录中的config.php

<?php
$dsn = 'mysql:dbname=testdb;host=localhost';
$username = 'root';
$password = 'root';
$dbh = new PDO($dsn, $username, $password);
?>
<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 } ?>

根目录中的index.php

<?php
$dsn = 'mysql:dbname=testdb;host=localhost';
$username = 'root';
$password = 'root';
$dbh = new PDO($dsn, $username, $password);
?>
<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 } ?>



更新:请容忍我,我对这方面的知识是新的。谢谢。

您正在混合
mysql.*
PDO
。。。在
PDO
中编写您的查询,并摆脱
mysql.*
业务。

您正在混合
mysql.*
PDO
。。。在
PDO
中编写查询,并摆脱
mysql.*
业务。

而不是

$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();
..
而不是

$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();
..

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

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

您应该得到某种类型的句柄打印输出。

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

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

你应该从句柄中得到一些打印。

也许你应该花些时间熟悉现有的框架,以及在你尝试构建自己的框架之前,它们是如何工作的?如果你对“框架块”感兴趣,那么就考虑一下ZEngFramework和SimFoYY2。ZF是一个组件框架,这意味着您可以使用任意多或任意少的组件。Symfony2是全栈的,这意味着大多数人都按原样使用它,但它包含许多可以像ZF一样独立使用的组件。如果你是作为一个学习练习来做这件事的话,那就足够了,但是如果是为了生产,你就应该真正使用现有的系统。我想学习从头开始构建自己的框架,以了解和理解其他框架是如何工作的。这是一个逐渐学习php的过程。你认为按你的建议做会更好吗?我认为学习手动变速器是自动变速器之前的第一步。是的,我认为学习现有的框架对我来说是一个伟大的进步。symfony1在这方面非常有用,尽管Symfony2在架构上结构更好。学习一个领先的框架——它是一种可转移的技能——然后如果你倾向于这样做的话,那么做你的。也许你应该花些时间熟悉现有的框架,以及在你尝试构建自己的框架之前,它们是如何工作的?如果你对“框架块”感兴趣,那么就考虑一下ZEngFramework和SimFoYY2。ZF是一个组件框架,这意味着您可以使用任意多或任意少的组件。Symfony2是全栈的,这意味着大多数人都按原样使用它,但它包含许多可以像ZF一样独立使用的组件。如果你是作为一个学习练习来做这件事的话,那就足够了,但是如果是为了生产,你就应该真正使用现有的系统。我想学习从头开始构建自己的框架,以了解和理解其他框架是如何工作的。这是一个逐渐学习php的过程。你认为按你的建议做会更好吗?我认为学习手动变速器是自动变速器之前的第一步。是的,我认为学习现有的框架对我来说是一个伟大的进步。symfony1在这方面非常有用,尽管Symfony2在架构上结构更好。学习一个领先的框架-这是一个可转移的技能-然后如果你有这样的倾向,做你的。尝试了,没有工作。我得说我对这一切都是新手。退一步,使用上面的两个文件,如何确保我的连接和数据库选择正常工作?将我的连接更改为mysql并返回到正常查询,仍然没有任何结果。尝试了,没有工作。我得说我对这一切都是新手。退一步,使用上面的两个文件,我如何确保我的连接和数据库选择工作正常?将我的连接更改为mysql并返回到正常查询,仍然没有。好的,我该怎么做,Michal的解决方案(下面)符合要求吗。我试过了,但没有成功。好吧,我该怎么做,迈克尔的解决方案(下图)符合要求吗。我试过了,但没用。谢谢迈克尔,你的评论给了我一个想法。已使用。@brb编码正常。你建议我不应该使用什么,请你详细说明/解释我应该使用什么,以及我是如何使用的。谢谢Michael,你的评论给了我一个想法。已使用。@brb编码正常。您建议我不应该使用什么,请您详细说明/解释我应该使用什么以及如何使用。