PHP将旧的mysql_query更改为PDO

前端之家收集整理的这篇文章主要介绍了PHP将旧的mysql_query更改为PDO前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的代码中有一些旧的 mysql_query查询,我想将其转换为PDO,但我很难开始工作.

我原来的代码是:

MysqL_query("UPDATE people SET price='$price',contact='$contact',fname='$fname',lname='$lname' WHERE id='$id' AND username='$username' ")
or die(MysqL_error());

现在我想:

$sql = "UPDATE people SET price='$price',lname='$lname' WHERE id='$id' AND username='$username'";
$q   = $conn->query($sql) or die("Failed!");

但似乎无法让它发挥作用,任何想法?

更新的代码

$conn = new PDO("MysqL:host=$host;dbname=$db",$user,$pass);


 // check if the form has been submitted. If it has,process the form and save it to the   database
 if (isset($_POST['submit']))
 { 
 // confirm that the 'id' value is a valid integer before getting the form data
 if (is_numeric($_POST['id']))
  {
 // get form data,making sure it is valid
 $id = $_POST['id'];
 $fname = MysqL_real_escape_string(htmlspecialchars($_POST['fname']));
 $lname = MysqL_real_escape_string(htmlspecialchars($_POST['lname']));
 $contact = MysqL_real_escape_string(htmlspecialchars($_POST['contact']));
 $price = MysqL_real_escape_string(htmlspecialchars($_POST['price']));


 // check that firstname/lastname fields are both filled in
 if ($fname == '' || $lname == '' || $contact == '' || $price == '' )
 {
 // generate error message
 $error = 'ERROR: Please fill in all required fields!';

 //error,display form
 renderForm($id,$fname,$lname,$contact,$price,$error);
 }
 else
 {
 // save the data to the database
 $username = $_SESSION['username'];

 $query = "UPDATE people 
         SET price=?,contact=?,fname=?,lname=? 
          WHERE id=? AND 
                username=?";
$stmt = $db->prepare($query);
$stmt->bindParam(1,$price);
$stmt->bindParam(2,$contact);
$stmt->bindParam(3,$fname);
$stmt->bindParam(4,$lname);
$stmt->bindParam(5,$id);
$stmt->bindParam(6,$username);    
$stmt->execute();


 // once saved,redirect back to the view page
header("Location: view.PHP"); 
}
有关更多信息,请访问此链接PHP PDO

根据你的例子,

<?PHP

    $query = "UPDATE people 
             SET price=?,lname=? 
              WHERE id=? AND 
                    username=?";
    $stmt = $dbh->prepare($query);
    $stmt->bindParam(1,$price);
    $stmt->bindParam(2,$contact);
    $stmt->bindParam(3,$fname);
    $stmt->bindParam(4,$lname);
    $stmt->bindParam(5,$id);
    $stmt->bindParam(6,$username);    
    $stmt->execute();

?>

PDO Prepared statements and stored procedures

原文链接:https://www.f2er.com/php/133202.html

猜你在找的PHP相关文章