Php 使用PDO更新查询时出错
我已经设置了一个自定义函数来更新我的查询,但是它似乎没有读取变量,我不知道我哪里出错了。 这是我的职责Php 使用PDO更新查询时出错,php,sql,pdo,Php,Sql,Pdo,我已经设置了一个自定义函数来更新我的查询,但是它似乎没有读取变量,我不知道我哪里出错了。 这是我的职责 function update_product($productID, $productName, $productDescription, $productPrice, $categoryID){ global $conn; $sql = "UPDATE product SET productName = :productName, productDescriptio
function update_product($productID, $productName, $productDescription, $productPrice, $categoryID){
global $conn;
$sql = "UPDATE product SET productName = :productName, productDescription = :productDescription, productPrice = :productPrice, categoryID = :categoryID WHERE productID = :productID";
$statement = $conn->prepare($sql);
$statement->bindValue(':productName', $productName);
$statement->bindValue(':productDescription', $productDescription);
$statement->bindValue(':productPrice', $productPrice);
$statement->bindValue(':categoryID', $categoryID);
$statement->bindValue(':productID', $productID);
$result = $statement->execute();
$statement->closeCursor();
return $result;
}
这就是我调用函数的地方
$result = update_product($productID, $productName, $productDescription, $productPrice, $categoryID);
我还将添加我的函数,在那里我获取ID并加载输入
function select_productspreparedGETID(){
global $conn;
$productID = $_GET['id'];
//prepared
$sql = "SELECT * FROM product WHERE productID = :productID";
$statement = $conn->prepare($sql);
$statement->bindValue(':productID', $productID);
$statement->execute();
$result = $statement->fetchAll();
$statement->closeCursor();
foreach($result as $row):
?>
<form method="post" action="../controller/product_update_process.php" enctype="multipart/form-data">
<div>
<label>Name* </label>
<input id="Product_Name" type="text" name="Product_Name" value="<?php echo $row['productName'] ?>" />
</div>
<div>
<label>Description* </label>
<textarea id="productDescription" name="productDescription" /><?php echo $row['productDescription'] ?></textarea>
</div>
<div>
<label>Price* </label>
<input id="Price" type="text" name="Price" value="<?php echo $row['productPrice'] ?>" />
</div>
<input type="submit" name="submit" value= "Update Cart">
</form>
<?php
endforeach;
函数选择\u productspreparedGETID(){
全球$conn;
$productID=$\u GET['id'];
//准备
$sql=“从产品中选择*,其中productID=:productID”;
$statement=$conn->prepare($sql);
$statement->bindValue(':productID',$productID);
$statement->execute();
$result=$statement->fetchAll();
$statement->closeCursor();
foreach($结果为$行):
?>
姓名*
价格*
您正在一个函数内定义$productID=$\u GET['id'];
,并在另一个函数中使用相同的变量。其他函数显然无法使用$productID
。请确保它是在任何函数外定义的
当前该变量仅在定义它的本地范围内可用。例如,在任何函数之外定义$productID
:
$productID = $_GET['id'];
您可以将此变量作为参数发送到select\u productsPrepareGetId()
:
function select_productspreparedGETID($productID){
//Your code
}
然后在这两个函数中都有$productID
,和选择产品preparedgetid()
,因为更新产品()
已经有$productID
作为参数。您正在定义$productID=$\u GET['id'];
在一个函数内部,并在另一个函数中使用相同的变量。$productID
显然不可用于其他函数。请确保它是在任何函数外部定义的
当前该变量仅在定义它的本地范围内可用。例如,在任何函数之外定义$productID
:
$productID = $_GET['id'];
您可以将此变量作为参数发送到select\u productsPrepareGetId()
:
function select_productspreparedGETID($productID){
//Your code
}
然后,在这两个函数中都有$productID
,更新产品()
和选择产品preparedgetid()
,因为更新产品()
已经有了$productID
作为参数。您得到的实际错误文本是什么?注意:未定义的变量:C:\Users\Bob\Desktop\Xammp\htdocs\Shopping List\controller\product\u update\u process.php中的productID在第14行,在我看来,$\u GET['id']没有定义(不在URL查询中)…如果未定义$\u GET['id'],您可能需要处理此情况并为productID分配一个默认值…然后根据实际得到的错误文本进行操作?注意:未定义变量:C:\Users\Bob\Desktop\Xammp\htdocs\Shopping List\controller\product\u update\u process.php中的productID,在第14行,我似乎是$\u GET['id']未定义(不在URL查询中)未定义…然后根据问题进行操作,但如果我需要获取id以填充表单,然后才能更新表单,如何在任何函数之外定义它?似乎没有任何帮助只是在所有未定义索引的页面上添加另一个错误:id@JackWarren我想您指的是$\u GET['id']
。您需要从URL获取id。我知道这一点,但如果我添加$productID=$\u get['id'];在任何函数外部,它将在任何页面上显示错误,除非我需要为这些函数创建一个附加函数文件..将尝试在同一页面上使用它…非常感谢您的时间,非常感谢!!愚蠢的问题,但是如果我需要在之前获取id来填写表单,我如何在任何函数外部定义它是否可以更新?似乎没有任何帮助,只是在所有索引未定义的页面上添加了另一个错误:id@JackWarren我想您指的是$\u GET['id']
。您需要从URL获取id。我知道这一点,但如果我添加$productID=$\u GET['id'];在任何函数之外,它将在任何页面上显示错误,除非我需要为这些函数创建一个附加函数文件..将尝试在同一页面上使用它…非常感谢您的时间!!