我使用php PDO作为db连接器。我有在绑定的电子邮件地址 问题说,我有一个SQLphp PDO绑定问题
$sql = UPDATE user set email = :email where uid = 10
$smt = $dbh->prepare($sql);
$smt->bindParam(':email', '[email protected]');
的PDO之后离开@每一件事情。
感谢名单
我使用php PDO作为db连接器。我有在绑定的电子邮件地址 问题说,我有一个SQLphp PDO绑定问题
$sql = UPDATE user set email = :email where uid = 10
$smt = $dbh->prepare($sql);
$smt->bindParam(':email', '[email protected]');
的PDO之后离开@每一件事情。
感谢名单
bindParam
用于一个变量,而不是一个值绑定。我想你想要做的是用bindValue
来代替。
你回答是不正确的。在这种情况下,存储过程与I/O参数发送数据(UPDATE)相关。出于这个原因,你应该使用bindParam并通过引用传递参数来正确评估它。 – cpugourou 2016-10-14 22:45:09
define("SQLHOST", "127.0.0.1");
define("SQLUSER", "user");
define("SQLPASS", "password");
define("SQLSGBD", "database");
try {
$dbh = new PDO('mysql:host=' . SQLHOST . ';dbname=' . SQLSGBD . ';charset=UTF8', SQLUSER, SQLPASS);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
var_dump('Connection failed: ' . $e->getMessage());
}
$emailList = ['[email protected]', '[email protected]'];
$stmt = $dbh->prepare("UPDATE user set email = ? where uid = 10");
foreach ($emailList as $key => $email) {
$stmt->bindParam(1, $email, PDO::PARAM_STR);
$stmt->execute();
$obj = $stmt->fetchall(PDO::FETCH_ASSOC);
if (count($obj) !== 0) {
/* whatever */
}
}
你是什么意思“留下@后的每一件事” – 2011-01-26 21:32:35