<?php
function db_query()
{
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "single4thenight";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, name, alias, type, parent, ordering, published FROM iutca_jomcl_locations"; //selects locations from
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. " alias" . $row["alias"]. " type: " . $row["type"]. " - parent: " . $row["parent"]. " ordering " . $row["ordering"]. "published " . $row["published"]."<br>";
}
} else {
echo "0 results";
}
$conn->close();
}
function read_location()
{
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "single4thenight";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT name FROM iutca_jomcl_locations"; //selects locations from
$result = $conn->query($sql);
if ($result->num_rows > 0)
{
while($row = $result->fetch_assoc()) {
// echo "Location : " . $row["name"]."<br>";
$row_name = $row["name"];
echo $row_name.'<br />';
}
}
$file1 = "./location.txt";
$lines = file($file1);
foreach($lines as $line_num => $line)
{
echo $line;
}
}
我的location.txt文件包含此
赤褐色 伯明翰 多森 加兹登 亨茨维尔 移动 蒙哥马利 肌肉浅滩 Tuscaloosa的
我想将我的sql数据库与txt文件进行比较,以确保我没有isaldy里面有变量。我不想在我的sql中添加重复项我想知道更新我的sql最简单的方法
答案 0 :(得分:1)
您可以使用INSERT IGNORE INTO
而不是INSERT INTO
,然后MySQL会忽略重复的条目。有关详细信息,请参阅MySQL documentation for INSERT。因此,根据我在您的问题中看到的内容,您的SQL看起来像:
INSERT IGNORE INTO iutca_jomcl_locations ('name') values (?)
希望这有帮助! :)
答案 1 :(得分:1)
首先,我们将文件内容读取到$content
变量
$content = file('mytxt.txt')
正如您发布的那样,您的文件包含用空格分隔的单词(如果没有,请跳过这个并使变量$ words包含您需要的值)所以我们需要拆分内容,将每个单词作为数组项
$words = explode(" ", $content);
最后,插入值并检查是否存在类似DB
中存在的值foreach($words as $word)
{
$sql = "INSERT iutca_jomcl_locations (name)
SELECT $word
WHERE NOT EXISTS
( SELECT 1
FROM tblSoftwareTitles
WHERE name = $word
);"
$result = $conn->query($sql);
}
iutca_jomcl_locations
- 表名
name
- 要插入的列(也使用此列检查唯一值)
答案 2 :(得分:0)
我使用了本规范,它为我工作
foreach($lines as $line_num => $line)
{
$line = $line;
//echo $line;
$sql = "SELECT ordering, name FROM iutca_jomcl_locations WHERE name='$line'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
//echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
echo "Found Locations: " . $row["name"]." The ordering Number Is " . $row["ordering"]."<br>";
$ordering =$row["ordering"];
}
} else {
if($ordering >=0)
{
$count = $ordering;
//echo "0 results";
$lowerCase = strtolower($line);
$sql = "INSERT INTO iutca_jomcl_locations (name, alias , parent, published,ordering)
VALUES ('$line','$lowerCase','$parent','1','$count')";
$count = $count + 1;
if ($conn->query($sql) === TRUE) {
echo "New record created successfully <br />";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
}
}