使用 PDO 删除查询中的传递变量


delete passing variable in a query using pdo

我想从查询中删除使用绑定变量。在我搬到PDO之前,它就奏效了。

<?php
require_once "konversi.php";
$server="localhost";
$user="root";
$password="";
$db_personalia="personalia";
try{
$id_mysql=new PDO("mysql:host=$server;dbname=$db_personalia",$user,$password);
}catch (PDOException $e) {
echo $e->getMessage("MySQL Error");
}
//Get code passed by user
$kode = $_GET['kode'];
if (empty($kode))
die("Invalid");
//convert value
$kode = turn_text($kode);
//value in variable
$kode=$_GET['kode'];
try{
$sql=$id_mysql->prepare("delete from member where nip =:kode");
$sql->bindValue(':kode',$kode);
$sql->execute();
}catch (PDOException $e)
{
print ("The statement failed.'n");
print ("getCode: ". $e->getCode (). "'n");
print ("getMessage: ".$e->getMessage (). "'n");
}
$id_mysql=null;
?>

有些事情我真的不明白你想做什么。这部分:

$kode = $_GET['kode'];
if (empty($kode))
die("Invalid");
//convert value
$kode = turn_text($kode);
//value in variable
$kode=$_GET['kode'];

所以让我猜猜这里可能出了什么问题:

  1. $_GET['kode'] 是未定义的,在您的 SQL 中,您在该列上声明了 NOT NULL。同样,empty() 方法适用于数组。相反,请使用 isset() 方法。

  2. 我不知道方法 turn_text() 在您的代码中做了什么,但是如果您在下一行中覆盖 var $kode,它毫无用处:)