我想用PHP

时间:2016-06-27 06:43:08

标签: php mysql database

我的表名为servicii,有3个变量:id,nume,pret。 我有这个代码,但不起作用。 谢谢。

if(isset($_POST['btnUpdate2']))
{
    $stmt = $conn->prepare("UPDATE servicii SET nume =?, pret=? WHERE id=?");
    $nume = $_POST['txtNume'];
    $pret = $_POST['txtCantitate'];
    $id = $_POST['selectProd'];
    $stmt->bind_param("iii", $nume, $pret, $id);
    $stmt->execute();
    $stmt->close();
    $_SESSION['msg'] = "Product successfuly updated!";
}

This is my database strong text

3 个答案:

答案 0 :(得分:0)

尝试echo error

试试这个

if ($stmt->execute()) { 
  $_SESSION['msg'] = "Product successfuly updated!";
} else {
   $_SESSION['error'] = "Product not updated!";
}

或者如果您想知道error使用此

if(!$stmt->execute()) echo $stmt->error;

答案 1 :(得分:0)

使用此

if(isset($_POST['btnUpdate2']))
{
    $stmt = $conn->prepare("UPDATE servicii SET nume =?, pret=? WHERE id=?");
    $nume = $_POST['txtNume'];
    $pret = $_POST['txtCantitate'];
    $id = $_POST['selectProd'];
    $stmt->bind_param("ssi", $nume, $pret, $id);
    $stmt->execute();
    $stmt->close();
    $_SESSION['msg'] = "Product successfuly updated!";
}

假设$ nume& $ pret变量包含字符串。 然后将$stmt->bind_param("ssi", $nume, $pret, $id);此行更改为$stmt->bind_param("sdi", $nume, $pret, $id);

答案 2 :(得分:0)

绑定参数时,i代表整数。这是您对数据库的查询无效的原因之一。

如果要解决此问题,您需要将绑定中的iii更改为ssi。 (这当然假设前两个参数(?)是字符串......

$stmt = $conn->prepare("UPDATE servicii SET nume = ?, pret= ? WHERE id = ?");
$stmt->bind_param("ssi", $nume, $pret, $id); // ssi
if($stmt->execute()){
    echo "Success!";
} else {
    echo 'Failed.';
}

以下是参数类型列表供将来参考:

  • i适用于整数
  • s用于字符串。即:" John Doe"
  • d用于双重
  • b适用于blob。

您可以在 php.net 网站上找到更多信息!