目前,我的數(shù)據(jù)庫中有一張名為“工廠”的表。在該表中,有兩列,“Fac_ID”和“Fac_Name”?,F(xiàn)在,我想創(chuàng)建一個函數(shù)來將一些新工廠添加到表“工廠”中。'Fac_ID' 和 'Fac_Name' 的值必須相同,這意味著當(dāng)我想添加工廠 'F09' 時,F(xiàn)ac_ID 和 Fac_Name 的值必須相同,即 'F09'。當(dāng)我以前連接MYSQL數(shù)據(jù)庫(PDO)時,添加成功。但是當(dāng)我更改為 MSSQL (PDO) 時," 未捕獲的 PDOException: SQLSTATE[HY093]: 參數(shù)編號無效:參數(shù)未在 C:\xampp\htdocs\ebooking\add_factory.php:24 中定義:#0 C:\xampp\htdocs\ebooking\add_factory.php( 24): PDOStatement->bindParam(':Fac_ID', 'F11')"這是我的 add_factory.php 代碼<?phprequire_once "configPDO.php";if(isset($_POST['Submit'])) { $Fac_ID = $_POST['Fac_ID'];// checking empty fieldsif(empty($Fac_ID)) { if(empty($Fac_ID)) { echo "<font color='red'>Name field is empty.</font><br/>"; } //link to the previous page echo "<br/><a href='javascript:self.history.back();'>Go Back</a>";} else { // if all the fields are filled (not empty) //insert data to database $sql = "INSERT INTO factory(Fac_Name, Fac_ID) VALUES(:Fac_Name, :Fac_Name)"; $query = $conn->prepare($sql); $query->bindParam(':Fac_Name', $Fac_ID,); $query->bindParam(':Fac_ID', $Fac_ID,); $query->execute(); //display success message header("Location:factory.php"); } }?>這是我的 configPDO.php<?php$servername = 'xxx.xx.xx.xxx';$username = 'xx';$password = 'xxxxxx';$dbname = 'xxxx';try {$conn = new PDO("sqlsrv:Server=$servername;Database=$dbname", $username, $password);$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);}catch(PDOException $error) {$error->getMessage();}?> 我能知道是什么問題嗎?添加工廠的 HTML 輸入是“Fac_ID”
1 回答

江戶川亂折騰
TA貢獻1851條經(jīng)驗 獲得超5個贊
在以下查詢中
$sql = "INSERT INTO factory(Fac_Name, Fac_ID) VALUES(:Fac_Name, :Fac_Name)";
您正在使用 :Fac_Name 兩次,您應(yīng)該使用以下內(nèi)容
$sql = "INSERT INTO factory(Fac_Name, Fac_ID) VALUES(:Fac_Name, :Fac_ID)";
如果您需要為 name 和 id 設(shè)置相同的值,您應(yīng)該省略以下行
$query->bindParam(':Fac_ID', $Fac_ID,);
因為您正在嘗試將數(shù)據(jù)綁定到查詢中不存在的參數(shù)
在您的情況下,以下陳述就足夠了
$query->bindParam(':Fac_Name', $Fac_ID,);
- 1 回答
- 0 關(guān)注
- 197 瀏覽
添加回答
舉報
0/150
提交
取消