[英]php PDO binding issue
I m using php PDO as db connector. 我正在使用php PDO作为数据库连接器。 I am having problem in binding a email address say i have an sql
我在绑定电子邮件地址时遇到问题,说我有一个SQL
$sql = UPDATE user set email = :email where uid = 10
$smt = $dbh->prepare($sql);
$smt->bindParam(':email', 'xyz@gmail.com');
The PDO is leaving every thing after @. PDO会在@之后留下所有内容。
Thanx 感谢名单
bindParam
is used to bind a variable, not a value. bindParam
用于绑定变量,而不是值。 I think what you want to do is use bindValue
instead. 我认为您要使用的是
bindValue
。
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 = ['xyz@gmail.com', 'abc@gmail.com'];
$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 */
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.