phpMyAdmin正在向数据库添加额外的行

phpMyAdmin正在向数据库添加额外的行,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,简单的PHP代码,用于写入和读取MySql数据库。从phpMyAdmin中手动输入的两行数据开始,然后通过PHP代码插入一行新行,当读回数据库内容时,一切看起来都很好(见下文) 但是,当在phpMyAdmin上检查数据库时,新行已插入三次而不是一次。有什么想法吗 PHP代码: <?php $con = mysqli_connect("localhost","root","password","database"); // Check connection if (mysqli_connec

简单的PHP代码,用于写入和读取MySql数据库。从phpMyAdmin中手动输入的两行数据开始,然后通过PHP代码插入一行新行,当读回数据库内容时,一切看起来都很好(见下文)

但是,当在phpMyAdmin上检查数据库时,新行已插入三次而不是一次。有什么想法吗

PHP代码:

<?php
$con = mysqli_connect("localhost","root","password","database");
// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error() . "<br>";}
else{
  echo "Connected to MySQL okay <br>";}

// Test inserting new row into database
$str = "INSERT INTO sites (src_name, date, content) VALUES ('BBC', '2016-02-24 08:00:00', 'Bad weather in UK')";
$result = $con->query($str);
if ($result === TRUE){
  echo "New record inserted successfully <br>";}
else{
  echo "Error: ". $con->error . "<br>";}

// Test reading from database
$result = $con->query("SELECT * FROM sites");
if (mysqli_num_rows($result) > 0){
  while($row = $result->fetch_assoc()){
    echo "Source : " . $row["src_name"]. " - Date: " . $row["date"]. " - Content: " . $row["content"]. "<br>";}
  }
mysqli_close($con);
?>

此表上是否有主键?这将有助于定义错误发生的位置。在
$str
中,能否将
rand()
附加到其中一个值?这可以精确定位正在运行多次的脚本或正在运行多次的查询。例如,
$str=“插入站点(src_名称、日期、内容)值('BBC','2016-02-24 08:00:00','UK恶劣天气')”有一件事是肯定的:phpmyadmin不会在任何表中插入额外的行。Devon我没有在任何时候专门设置主键。正如Dave Chen所建议的,将rand()函数附加到$str,并在PHP页面上将1423附加到单个条目。在phpMyAdmin中,这3个条目现在附加了:14232948178。由于数据库中的每个条目现在都不同了,这是否意味着PHP查询被调用了3次?按照Devon的建议,向表中添加一个主键(只需创建一个名为item_number的新列并使其成为主键)就解决了这个问题。