【发布时间】:2019-08-17 01:30:00
【问题描述】:
目前,我的数据库中有一个名为“工厂”的表。在此表中,有两列,“Fac_ID”和“Fac_Name”。现在,我想创建一个函数来向表“工厂”添加一些新工厂。
'Fac_ID'和'Fac_Name'的值必须相同,也就是说当我要添加工厂'F09'时,Fac_ID和Fac_Name的值必须相同,即'F09'。
我以前连接MYSQL数据库(PDO)时,添加成功。但是当我更改为 MSSQL (PDO) 时,
" Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter is not defined in C:\xampp\htdocs\ebooking\add_factory.php:24 Stack trace: #0 C:\xampp\htdocs\ebooking\add_factory .php(24): PDOStatement->bindParam(':Fac_ID', 'F11')"
这是我的 add_factory.php 代码
<?php
require_once "configPDO.php";
if(isset($_POST['Submit'])) {
$Fac_ID = $_POST['Fac_ID'];
// checking empty fields
if(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'
【问题讨论】:
-
在您的查询中,您有
VALUES(:Fac_Name, :Fac_Name)而不是VALUES(:Fac_Name, :Fac_ID) -
因为像我的问题一样,我希望 Fac_ID 和 Fac_Name 具有相同的值
-
没关系,但您正在尝试绑定到参数
:Fac_ID,而您的查询中不存在该参数。因此你得到的错误。
标签: php sql-server pdo