为什么在PHP中更新某些内容时MySQL数据库不会更新?

时间:2020-09-18 05:28:35

标签: php mysql sql mysqli

我最近设置了一个MySQL服务器和一个Apache网络服务器来测试Mysql数据库。但有一个问题。 PHP不会更新MySql服务器,或者MySQL服务器不会更新。

我什至回去并从W3Schools复制并粘贴,这似乎什么也做不了。我在做什么错了?

<?php
$servername = "127.0.0.1";
$username = "root";
$password = "password";
$dbname = "form_acceptance";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}

$sql = "UPDATE MyGuests SET Player_name='Doe' WHERE id=2";

if (mysqli_query($conn, $sql)) {
  echo "Record updated successfully";
} else {
  echo "Error updating record: " . mysqli_error($conn);
}

mysqli_close($conn);
?>

MySql

CREATE DATABASE form_acceptance;
CREATE TABLE form_acceptance (
    PersonID int,
    Player_Name varchar(255),
    Countries varchar(255),
    Username varchar(255),
    Level_and_rank varchar(255),
    Max_BR varchar(255)
);
INSERT INTO form_acceptance (PersonID, Player_Name, Countries, Username, Level_and_rank, Max_BR)
SELECT 'SayByeBye_exe', 'SayByeBye_exe', 'US', '^GYMP^SayByeBye_exe', '12_Luitenant', '4.7';
select * FROM form_exceptance;

似乎没有任何作用。 PHP不会将数据更新到MySql。为什么不呢?

是因为我正在使用Linux吗?还是不?

2 个答案:

答案 0 :(得分:-1)

要执行查询,请确保表中至少有2条记录

$sql = "UPDATE MyGuests SET Player_name='Doe' WHERE id=2";

如果没有编号为2的id,则查询失败,因此请确保您进行了检查,除了最后一行的键入错误外,我没有发现其他任何错误

答案 1 :(得分:-1)

您的设置出现几个错误。您没有任何MyGuests表,因此我假设您要更新form_acceptance表。然后form_acceptance表没有任何id列,因此我们必须添加它或使用PersonID列。这是修复您的问题的代码段。

第一

请像这样更新您的MySQL表创建。这将使PersonID成为主要的自动增量列。

CREATE DATABASE form_acceptance;
CREATE TABLE form_acceptance (
    PersonID int NOT NULL AUTO_INCREMENT, //Notice we added NOT NULL AUTO_INCREMENT
    Player_Name varchar(255),
    Countries varchar(255),
    Username varchar(255),
    Level_and_rank varchar(255),
    Max_BR varchar(255),
    PRIMARY KEY (`PersonID `)//define PersonId as primary key
);

第二 插入一些记录

INSERT INTO form_acceptance (Player_Name, Countries, Username, Level_and_rank, Max_BR)
Values('Player_Name1', 'US', 'Username`', '12_Luitenant', '4.7'),
('Player_Name2', 'US', 'Username2', '12_Luitenant', '4.7');
select * FROM form_acceptance;//Will show you 2 records having PersonID 1 and 2

现在修复您的更新查询

<?php
$servername = "127.0.0.1";
$username = "root";
$password = "password";
$dbname = "form_acceptance";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}

$sql = "UPDATE form_acceptance SET Player_name='Doe' WHERE PersonID=2";

if (mysqli_query($conn, $sql)) {
  echo "Record updated successfully";
} else {
  echo "Error updating record: " . mysqli_error($conn);
}

mysqli_close($conn);
?>

这将成功更新PersonID为2的第二行的记录。