目前,我的数据库中有一张名为“工厂”的表。在该表中,有两列,“Fac_ID”和“Fac_Name”。现在,我想创建一个函数来将一些新工厂添加到表“工厂”中。'Fac_ID' 和 'Fac_Name' 的值必须相同,这意味着当我想添加工厂 'F09' 时,Fac_ID 和 Fac_Name 的值必须相同,即 'F09'。当我以前连接MYSQL数据库(PDO)时,添加成功。但是当我更改为 MSSQL (PDO) 时," 未捕获的 PDOException: SQLSTATE[HY093]: 参数编号无效:参数未在 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条经验 获得超5个赞
在以下查询中
$sql = "INSERT INTO factory(Fac_Name, Fac_ID) VALUES(:Fac_Name, :Fac_Name)";
您正在使用 :Fac_Name 两次,您应该使用以下内容
$sql = "INSERT INTO factory(Fac_Name, Fac_ID) VALUES(:Fac_Name, :Fac_ID)";
如果您需要为 name 和 id 设置相同的值,您应该省略以下行
$query->bindParam(':Fac_ID', $Fac_ID,);
因为您正在尝试将数据绑定到查询中不存在的参数
在您的情况下,以下陈述就足够了
$query->bindParam(':Fac_Name', $Fac_ID,);
- 1 回答
- 0 关注
- 166 浏览
添加回答
举报
0/150
提交
取消