我正在研究我的一个小项目,我得出结论,能够自动将excel表格上传到我的数据库将是非常非常有用的,问题是我不知道从哪里开始,我研究了一下,并决定使用从Excel工作表创建的CSV文件将数据上传到我的数据库表中.
大多数的例子我看起来好像把PHP代码搞砸到html而不是将逻辑划分到不同的文件中,就像我过去2个月里一直在做的那样.
我现在拥有的是html中的上传表单:
<form enctype="multipart/form-data" method="post" id="uploadForm">
<input name="filesfiles" id="upload" type="file" accept=".csv" class="left" />
<input type="submit" value="Cargar" />
</form>
Run Code Online (Sandbox Code Playgroud)
以及CSV文件在文本中的外观的一小部分示例:
Cedula;Nombre;Apellido1;Apellido2;Correo;IdRol;Estado
1657890;Dominico;Scarlatti;Viera;leetrills@yahoo.com;2;0
5657890;Franz;Listz;Linerman;flizts@hotmail.com;3;0
Run Code Online (Sandbox Code Playgroud)
或者在其他一些excel版本中:
Cedula,Nombre,Primer Apellido,Segundo Apellido,Correo,IDRol,Estado
126548791,Franz ,Ritter ,von Liszt,fliszt@arppegio.com,3,0
174657109,Sofia ,Asgatovna ,Gubaidulina ,gubaidulina@yahoo.com,3,0
Run Code Online (Sandbox Code Playgroud)
第一行是我要将文件上传到的表的列名(在添加信息时应该忽略).
问题是,一旦将提交按钮单击到我的包含中将CSV插入表格中的PHP代码,我就不知道如何链接上传文件.
非常感谢提前
编辑:
EDIT4:
我是一个纯天才和技巧的中风Maduka能够帮助我解决这个庞然大物的问题.我不能够感谢他,以下是使用的代码,希望它有朝一日可以服务某人并为他们挽救失败的悲痛.
<?php
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_WARNING & ~E_STRICT);
mysql_connect('localhost', 'root', '');
mysql_select_db("proyecto") or die(mysql_error());
if (isset($_FILES['csvupload'])) {
$errors = array();
$allowed_ext = array('.csv');
$file_name = $_FILES['csvupload']['name'];
$file_ext = strtolower(end(explode('.', $file_name)));
$file_size = $_FILES['csvupload']['size'];
$file_tmp = $_FILES['csvupload']['tmp_name']; …Run Code Online (Sandbox Code Playgroud) 当我进入这一部分时,我正在阅读有关散列密码的文章:
验证密码
但是我对接下来的流程有些困惑,例如,假设我有一个数据库,其中包含一个包含ID,名称,密码和电子邮件的用户表,并且要登录某个应用程序,我需要输入电子邮件和密码。
按照上述步骤,我首先需要获取存储在数据库中的该用户的salt + hash密码。
题:
假设我正在使用一个简单的存储过程,那么唯一的方法就是像这样...
CREATE PROCEDURE [dbo].[sp_validate_user]
@us_email VARCHAR (MAX)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT us_id,
us_name,
us_pass,
us_email
FROM Users
WHERE us_email = @us_email
END
Run Code Online (Sandbox Code Playgroud)
然后执行第二步和第三步:
public static bool ValidatePassword(string inputPassword, string storedPassword)
{
// Extract the parameters from the hash
char[] delimiter = { ':' }; …Run Code Online (Sandbox Code Playgroud)