Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用PDO更新查询时出错_Php_Sql_Pdo - Fatal编程技术网

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'];在任何函数之外,它将在任何页面上显示错误,除非我需要为这些函数创建一个附加函数文件..将尝试在同一页面上使用它…非常感谢您的时间!!