绑定pdo中的多个值

You*_*mon 22 php pdo bind

是否有一种简单的方法可以在PDO中绑定多个值而无需重复?看看下面的代码:

$result_set = $pdo->prepare("INSERT INTO `users` (`username`, `password`, `first_name`, `last_name`) VALUES (:username, :password, :first_name, :last_name)");

$result_set->bindValue(':username', '~user');
$result_set->bindValue(':password', '~pass');
$result_set->bindValue(':first_name', '~John');
$result_set->bindValue(':last_name', '~Doe');

$result_set->execute();
Run Code Online (Sandbox Code Playgroud)

在这里,我以重复的方式将值绑定了4倍.那么在PDO中绑定多个值有一种简单的方法吗?

jer*_*emy 34

execute()只要您对被视为PDO::PARAM_STR(字符串)的值没有问题,您就可以始终在参数中绑定值.

$result_set = $pdo->prepare("INSERT INTO `users` (`username`, `password`, `first_name`, `last_name`) VALUES (:username, :password, :first_name, :last_name)");
$result_set->execute(array(
    ':username' => '~user',
    ':password' => '~pass',
    ':first_name' => '~John',
    ':last_name' => '~Doe'
));
Run Code Online (Sandbox Code Playgroud)

你可以使用像任何数组一样传递的数组:

$user = "Nile";
$pdo->execute(array(":user" => $user));
Run Code Online (Sandbox Code Playgroud)


Cor*_*bin 6

如果你想基于类型(字符串,整数等)绑定,那么没有.如果您将所有内容绑定为字符串:

$stmt = $db->prepare("...");
$stmt->execute(array(
    'foo' => 'bar',
    'something' => 'else',
    'third' => 'thing',
));
Run Code Online (Sandbox Code Playgroud)