微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐