关联数组和绑定参数

1 php mysqli pdo

我对这些PDO::prepare功能感到困惑.

我有类似的东西

array('user_email'=>'hello@net.com','user_pass'=>'password')
Run Code Online (Sandbox Code Playgroud)

我想把它翻译成这样的东西

INSERT INTO user_info (user_email, user_pass) VALUES (hello@net.com, password)
Run Code Online (Sandbox Code Playgroud)

使用参数化查询与PDO(或mysqli,我愿意接受建议).另一个想法 -

array('uid'=>'10', 'first_name'=>'robert', 'last_name'=>'jones')
array("email", "number")
Run Code Online (Sandbox Code Playgroud)

SELECT email, number FROM t1 WHERE uid=10 AND first_name=robert AND last_name=jones
Run Code Online (Sandbox Code Playgroud)

我知道答案在于某处PDO::preparecall_user_func_array,但我已经得到了对后者的功能是如何工作真的很困惑,并希望得到一个解释.

Til*_*ill 5

我很困惑,也许你也是.这是一个简单的例子:

$sth = $dbh->prepare('SELECT * FROM table WHERE id = ? AND date = ?');
$sth->execute(array(150, '2009-04-04'));
$data = $sth->fetchAll();
Run Code Online (Sandbox Code Playgroud)

要么:

$sth = $dbh->prepare("INSERT table VALUES(:foo, :bar)");
$sth->bindParam(":foo", $foo);
$sth->bindParam(":bar", $bar);
Run Code Online (Sandbox Code Playgroud)

要么:

$sth = $dbh->prepare("INSERT INTO user_info (user_email, user_pass) VALUES (:email, :pass)");
$sth->execute(array(':email' => 'foo@example.org', ':pass' => '1234'));
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!