PHP+Mysql查询,适合真正的初学者

PHP+Mysql查询,适合真正的初学者,php,mysql,Php,Mysql,在经历了多年的失败之后,我终于开始学习编写PHP代码了。在经历了大约10次失败的学习尝试后,它变得令人兴奋,最终进展相当顺利 我用来学习的项目是为了工作。我正在尝试将100多个固定宽度的文本文件导入MySql数据库 到目前为止还不错 我对sql很熟悉,我正在学习一些php技巧,但我不知道如何将所有的部分结合在一起。我想做的事情的基本结构如下: 命名要导入的文本文件 执行加载数据填充,将数据导入一个字段并将其导入临时数据库 使用子字符串将固定宽度文件分隔为实际列 删除行我不需要文件标识符、小计等。

在经历了多年的失败之后,我终于开始学习编写PHP代码了。在经历了大约10次失败的学习尝试后,它变得令人兴奋,最终进展相当顺利

我用来学习的项目是为了工作。我正在尝试将100多个固定宽度的文本文件导入MySql数据库

到目前为止还不错 我对sql很熟悉,我正在学习一些php技巧,但我不知道如何将所有的部分结合在一起。我想做的事情的基本结构如下:

命名要导入的文本文件 执行加载数据填充,将数据导入一个字段并将其导入临时数据库 使用子字符串将固定宽度文件分隔为实际列 删除行我不需要文件标识符、小计等。。。。 将临时数据库中的文件添加到主数据库 放下临时数据库并重新启动 正如您在所附代码中看到的,thigns工作正常。它获取新文件,将其导入临时表,删除不需要的行,然后将内容移动到最终的主数据库。太好了

问题三 我的两个问题是:

我这样做“正确”吗?当我想一个接一个地运行一堆查询时,我是否一直将mysql\u查询分配给随机变量

我将如何自动执行脚本,以循环遍历那里的每个文件并导入它们?而不必每次都更改文件名并运行脚本

最后,我将使用什么PHP函数来“选择”要导入的文件?你知道,就像将文件附加到电子邮件->浏览文件,上传文件,然后在上面运行脚本一样

很抱歉,这是一个非常初级的问题,但是我很难看到所有的部分是如何组合在一起的。具体地说,我想知道如何将多个sql查询串在一起形成一个脚本?我在下面做这件事的方式?还有别的办法吗

感谢x 100提供的任何见解

特里


为什么不加载文件并用PHP处理它们,然后用它在实际的表中插入值呢

即:


将mysql_query设置为变量的目的是为了获得要查询的数据。对于SELECT以外的任何其他查询,它只返回true或false

所以在使用if$var=mysql的情况下。。。因为函数返回true或false,所以根本不需要变量assing


另外,我觉得在PHP中处理所有的子字符串和数据文件会更好。您可以查看该页面左侧的和相关函数。

如果您可以访问类似的命令,则可以直接从mysql命令行加载所有数据。此外,您还可以通过编写shell脚本来自动化该过程。仅仅因为你可以用PHP做一些事情并不意味着你应该这样做

例如,您可以安装PHPMyAdmin,动态创建表,然后使用mysqldump将数据库定义转储到文件中。像这样

mysqldump -u myusername -pmypassword mydatabase > mydatabase.backup.sql
稍后,您可以重新加载整个数据库

mysql -u myusername -pmypassword < mydatabase.backup.sql
学习用PHP做事情很酷,但是要专注于经常用PHP做的事情,而不是用PHP做RDBMS的事情,因为大多数时候你都不应该这样做。构建表单,并处理数据。了解如何构建对象,以及为什么要这样做。去看看交响乐和教义。了解前端控制器模式

此外,请调查PDO。再使用直接mysql_查询函数是非常糟糕的

最后,PHP非常适合模板化和包含不同的部分,以形成一个内聚的整体。练习制作左侧和顶部导航html文件。弄清楚如何在所有页面上都包含一个文件,以便在任何地方都显示相同的导航


然后找出如何查看页面名称等变量,并突出显示您所在的导航选项卡。这些都是PHP非常适合的功能。

ps:导入的文本文件如下所示:我聪明地发现,子字符串可以帮助我正确导入它们!将来,要自己格式化代码,只需缩进4个空格,或者选择“代码”,然后按消息编辑器工具栏中的010101按钮或Ctrl+K键。您应该了解更多有关MySQL字段类型的信息,以便为自己创建更好的表。一个错误的例子是将date与varchar一起使用。另外,我不明白为什么你应该直接将文件加载到表中,而不是按照你想要的方式逐行过滤,并使用正确的清理和转义将其插入到数据库中。谢谢你非常有用的回复,Zak。这正是一个完全初学者需要的建议——即:从哪里开始。谢谢
mysqldump -u myusername -pmypassword mydatabase > mydatabase.backup.sql
mysql -u myusername -pmypassword < mydatabase.backup.sql