Php mysql从文件插入更新(如果存在)或更新
我有一个mysql表(my_表),它有3列(名称、年龄、地点)。我有一个新的文本文件(data.txt制表符分隔的数据文件),它有两列(名称和位置)。我想将文件“data.txt”中的信息插入我的_表,条件是名称相同(在mysql表和文本文件“data.txt”中),更新行(在第3列中插入位置值),否则创建新行(其中年龄将为NULL)Php mysql从文件插入更新(如果存在)或更新,php,mysql,Php,Mysql,我有一个mysql表(my_表),它有3列(名称、年龄、地点)。我有一个新的文本文件(data.txt制表符分隔的数据文件),它有两列(名称和位置)。我想将文件“data.txt”中的信息插入我的_表,条件是名称相同(在mysql表和文本文件“data.txt”中),更新行(在第3列中插入位置值),否则创建新行(其中年龄将为NULL) 如何在mysql中做到这一点???(我想插入文本文件中的值)首先,确保表中包含以下内容: 名称上唯一 年龄可以为零 以下查询将满足您的需要: INSERT INT
如何在mysql中做到这一点???(我想插入文本文件中的值)首先,确保表中包含以下内容:
INSERT INTO my_table SET name = 'Name', place = 'Place'
ON DUPLICATE KEY UPDATE place = 'New Place'
有了读取文件的代码,您可以使用:
$file = new SplFileObject('data.txt');
while($file->eof() === true) {
$line = $file->fgets();
$data = explode("\t", $line);
// execute query:
$query = sprintf(
"INSERT INTO my_table SET name = '%1$s', place = '%2$s' ON DUPLICATE KEY UPDATE place = '%2$s'",
$data[0], // escape this
$data[1] // escape this
);
}
请注意,您需要使用mysql客户端库执行该查询。文本文件data.txt如何?如何指定从此文件获取数据?您可以为此打开一个新问题(或更新此问题),确保告知您的文件的格式,否则我们将无法提供帮助。我试图编辑问题。。希望现在它更有意义。感谢您的努力。我需要知道您的.txt文件的内容是什么样的。它是一个简单的选项卡分隔文本文件。示例行-John\tUSA
$file = new SplFileObject('data.txt');
while($file->eof() === true) {
$line = $file->fgets();
$data = explode("\t", $line);
// execute query:
$query = sprintf(
"INSERT INTO my_table SET name = '%1$s', place = '%2$s' ON DUPLICATE KEY UPDATE place = '%2$s'",
$data[0], // escape this
$data[1] // escape this
);
}