Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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 - Fatal编程技术网

用于所有表单的单个php文件

用于所有表单的单个php文件,php,mysql,Php,Mysql,我的网站上有四个表单,将用户输入发送到MySQL数据库中的四个不同表。将这四个表单的所有查询放在一个php文件中是否是一种好的做法 目前,每个表单都有一个不同的php文件。例如,form-abc.html有一个与数据库通信的abc.php,form-def.html有一个def.php等等 由于所有这些表单中的mysqli连接都是相同的,我想知道是否可以从包含所有查询/函数的php文件中调用相关函数/查询?如果可能,如何实现?总的来说,将代码放在一个文件中不是一个好的做法,特别是如果四个查询在用

我的网站上有四个表单,将用户输入发送到MySQL数据库中的四个不同表。将这四个表单的所有查询放在一个php文件中是否是一种好的做法

目前,每个表单都有一个不同的php文件。例如,form-abc.html有一个与数据库通信的abc.php,form-def.html有一个def.php等等


由于所有这些表单中的mysqli连接都是相同的,我想知道是否可以从包含所有查询/函数的php文件中调用相关函数/查询?如果可能,如何实现?

总的来说,将代码放在一个文件中不是一个好的做法,特别是如果四个查询在用途上没有明显的关联,但是将包含代码的每个文件连接到数据库,并且手工制作查询字符串,这也是一个糟糕的设计

您应该设法将公共代码分解到实用程序库中,起点是使用单个库函数返回到数据库的连接。更改连接详细信息、数据库名称等需要进行一次更改,而不是四次,这样可以减少出错的机会。您的四个文件也不需要知道如何连接到数据库,删除代码就可以做到这一点

与手工制作查询不同的是,在查询中有可能无法正确转义数据,并且最终编写的代码比需要的多,并且将自己锁定到特定的数据库类型,您应该让库例程来帮助完成这项工作。PHP已经有了一些库,或者您可以开发自己的库,这些库可能更适合这项工作

从广义上讲,您可能会得到如下代码:


<?php

include_once "db_utils.php";

$db = DB::get_instance();

if (isset($_POST['form_submitted'])) {
  // Validation etc.
  $customers = $db->table('customers');

  $customers->insert(array('name' => $_POST['name'], 'email' => $_POST['email']));
  // ...
}


总的来说,将代码放在一个文件中不是一个好的做法,特别是如果四个查询在目的上没有明显的关联,但是让每个包含代码的文件连接到数据库,并且手工制作查询字符串,这也是一个糟糕的设计

您应该设法将公共代码分解到实用程序库中,起点是使用单个库函数返回到数据库的连接。更改连接详细信息、数据库名称等需要进行一次更改,而不是四次,这样可以减少出错的机会。您的四个文件也不需要知道如何连接到数据库,删除代码就可以做到这一点

与手工制作查询不同的是,在查询中有可能无法正确转义数据,并且最终编写的代码比需要的多,并且将自己锁定到特定的数据库类型,您应该让库例程来帮助完成这项工作。PHP已经有了一些库,或者您可以开发自己的库,这些库可能更适合这项工作

从广义上讲,您可能会得到如下代码:


<?php

include_once "db_utils.php";

$db = DB::get_instance();

if (isset($_POST['form_submitted'])) {
  // Validation etc.
  $customers = $db->table('customers');

  $customers->insert(array('name' => $_POST['name'], 'email' => $_POST['email']));
  // ...
}


是的,我手工制作查询,主要是因为我对“库”一无所知。我在2000年学习了一些编程,并利用这些基本知识学习和实现了当时还不流行的语言。也就是说,我每天都在学习新的东西。我从php for mysql开始,然后出于安全原因(我的主机不支持PDO)切换到Mysqli。虽然我不知道你说的一些话是什么意思,但它给了我下一步需要寻找的东西的指针。那就是了!至于框架..那将是在我了解库之后@vinaya使用Mysqli还是PDO并不特别重要,它们只是一些不同的API:重要的是您使用的是参数化查询。是的,我手工制作查询,主要是因为我对“库”一无所知。我在2000年学习了一些编程,并利用这些基本知识学习和实现了当时还不流行的语言。也就是说,我每天都在学习新的东西。我从php for mysql开始,然后出于安全原因(我的主机不支持PDO)切换到Mysqli。虽然我不知道你说的一些话是什么意思,但它给了我下一步需要寻找的东西的指针。那就是了!至于框架..那将是在我了解库之后@vinaya使用Mysqli还是PDO并不特别重要,它们只是一些不同的API:重要的是您使用的是参数化查询。