PDO / PHP - bindValue似乎不起作用

时间:2015-10-28 23:17:51

标签: php pdo bindvalue

根据我发现和看到的一切,这似乎是正确的。当我打印$ query时,结果如下:

" INSERT INTO客户(FirstName,MiddleInit,LastName,地址,城市,州,邮编,电子邮件,性别)价值观(?,?,?,?,?,?,?,?, ?)"

参数应该用bindValues()中的变量填充。所以,例如......

INSERT INTO客户(FirstName,MiddleInit,LastName,地址,城市,州,邮编,电子邮件,性别)价值(Bill,A,Hopkins,123 Ave,....)

我想坚持使用这种方法 - 它被try / catch块包围。从打印查询变量中我可以看出问题所在。

我错过了什么?我真的很感谢你的期待!

$query = 'INSERT INTO customers (FirstName, MiddleInit, LastName, Address, City, State, Zip, Email, Gender) VALUES (?,?,?,?,?,?,?,?,?)';
        echo $query;
        $statement = $db->prepare($query);
        $statement->bindValue(1, $firstName);
        $statement->bindValue(2, $middle);
        $statement->bindValue(3, $lastName);
        $statement->bindValue(4, $address);
        $statement->bindValue(5, $city);
        $statement->bindValue(6, $state);
        $statement->bindValue(7, $zip);
        $statement->bindValue(8, $email);
        $statement->bindValue(9, $gender);
        $success = ($statement->execute());

1 个答案:

答案 0 :(得分:0)

我们需要更多代码来考虑错误,但您可以使用预先准备好的语句来尝试:

$query = 'INSERT INTO customers (FirstName, MiddleInit, LastName, Address, City, State, Zip, Email, Gender) VALUES (:firstName, :middle, :lastName, :address, :city, :state, :zip, :email, :gender)';
$statement = $db->prepare($sql);
$statement->execute(array(':firstName'=>$firstName, ':middle'=>$middle, ':lastName'=>$lastName, ':address'=>$address, ':city'=>$city, ':state'=>$state, ':zip'=>$zip, ':email'=>$email, ':gender'=>$gender));