我完全停留在一個問題上。我從PHP練習MySQL數據插入,但我無法得到它的工作。當談到php時,我是全新的。使用MySQL和HTML,我做了一些課程,所以你可以說我是初學者。這是示例的第三部分,您必須列出表中的所有動物的第一個示例,我開始工作的那部分,然後第二部分是我必須使用命名參數來提取特定動物類型的地方,而且它也是工作正常。現在我堅持最後一個插入數據。我有一個簡單的動物名稱和動物類型的表單作爲文本框,當我點擊提交更新的行必須在示例一中自動更新並顯示在表中,但是當我點擊提交時,沒有任何反應,沒有任何東西插入到數據庫,但是當我刷新頁面或再次點擊提交時,我只能看到更新的數據。在單擊刷新或提交後,在兩個文本字段中填寫數據時,會將空白數據插入到數據庫中。PHP表格不更新
<?php
$db = 'mysql:host=localhost;dbname=animals';
$username = 'root';
$password = '';
$animal_type = $_POST[animal_type];
$animal_name = $_POST[animal_name];
$query = "INSERT INTO animals
(animal_type, animal_name)
VALUES
('$animal_type', '$animal_name')";
$animal = $db->prepare($query);
$animal->bindValue(':animal_id', $animal_id);
$animal->execute();
$animals = $animal->fetchAll();
$animal->closeCursor();
?>
<form action="example3.php" method="post">
Animal Name: <input type="text" name="animal_name"><br>
Animal Type: <input type="text" name="animal_type"><br>
<input type="submit" />
</form>
任何幫助將不勝感激。 JasonK
更新
因此,這是個什麼樣子建成後像,但是你看那些空白項,是當我填的動物種類和動物的名稱,然後單擊會發生什麼提交 - 它只是離開場空白,我檢查了數據庫,當我點擊提交時,它會插入。我推斷,無論何時單擊提交或執行頁面刷新,它都會再次運行整個代碼,這是空白條目的來源。
這就是我整個代碼的樣子。
<!DOCTYPE html>
<html>
<head>
</head>
<body>
/////////////////////////////////////////////////////////////////////////////////Example1/////////////////////////////////////////////////////////////////////////////////////////
<?php include 'menu.inc';
$db = 'mysql:host=localhost;dbname=animal';
$username = 'jason';
$password = '';
try {
$db = new PDO($db, $username, $password);
echo 'Connection successful';
echo '<br />';
}
catch(PDOException $e)
{
echo 'Connection failed' . $e->getMessage();
}
$query = 'SELECT animal_type, animal_name
FROM animals';
$animal = $db->query($query);
$animal->execute();
$animals = $animal->fetchAll();
$animal->closeCursor();
echo "<br>";
?>
<table border="1">
<tr>
<th>Animal Type</th>
<th>Animal Name</th>
</tr>
<?php foreach ($animals as $animal) { ?>
<tr>
<td><?php echo $animal['animal_type']; ?></td>
<td><?php echo $animal['animal_name']; ?></td>
</tr>
<?php } ?>
</table>
/////////////////////////////////////////////////////////////////////////////////Example2/////////////////////////////////////////////////////////////////////////////////////////
<?php
$animal_type = "leopard";
$query = 'SELECT *
FROM animals
WHERE animal_type = :animal_type';
$animal = $db->prepare($query);
$animal->bindValue(':animal_type', $animal_type);
$animal->execute();
$animals = $animal->fetchAll();
$animal->closeCursor();
?>
<p>
<table border="1">
<tr>
<th>Animal Type</th>
<th>Animal Name</th>
</tr>
<?php foreach ($animals as $animal) { ?>
<tr>
<td><?php echo $animal['animal_type']; ?></td>
<td><?php echo $animal['animal_name']; ?></td>
</tr>
<?php }?>
</table>
</p>
/////////////////////////////////////////////////////////////////////////////////Example3/////////////////////////////////////////////////////////////////////////////////////////
<?php
$db = 'mysql:host=localhost;dbname=animals';
$username = 'jason';
$password = '';
$animal_type = $_POST['animal_type'];
$animal_name = $_POST['animal_name'];
$db = new PDO('mysql:host=localhost;dbname=animals', $username, $password);
$query = "INSERT INTO animals
SET animal_type = :animal_type,
animal_name = :animal_name";
$animal = $db->prepare($query);
$animal->bindParam(':animal_type', $animal_type, PDO::PARAM_STR);
$animal->bindParam(':animal_name', $animal_name, PDO::PARAM_STR);
$animal->execute();
?>
<form action="example3.php" method="post">
Animal Name: <input type="text" name="animal_name"><br>
Animal Type: <input type="text" name="animal_type"><br>
<input type="submit" />
</form>
</body>
</html>
爲什麼當你有沒有在你的插入查詢中使用的值,你綁定值?我可以添加,你應該使用':value'作爲插入值而不是變量:| – Option
您能告訴我們上面的代碼 –
的輸出或錯誤是什麼,請首先確定您需要插入還是更新? 有問題,你說你想要更新,但在代碼中,你插入的數據。 –