哪种方法是将数据添加到数据库?

Sui*_* Go 4 php sql

$user='root';

try{
$pdo=new PDO('mysql:host=localhost;dbname=test',$user);
$pdo->exec('set character set utf8');
}
catch(PDOException $e){
echo 'Error: '.$e->getMessage();
}

//using bound variables?
$stmt=$pdo->prepare('insert into test(name) value(:name)');
$stmt->bindParam(':name',$_POST['name']);
$stmt->execute();

//using named parameters
$stmt=$pdo->prepare('insert into test(name) value(:name)');
$stmt->execute(array(':name'=>$_POST['name']));

//using placeholders
$stmt=$pdo->prepare('insert into test(name) value(?)');
$stmt->execute(array($_POST['name']));

//using bound parameters w/ placeholders
$stmt=$pdo->prepare('insert into test(name) value(?)');
$stmt->bindParam($_POST['name']);
$stmt->execute();
Run Code Online (Sandbox Code Playgroud)

我只是想知道什么是最好用作我的PHP启动器,我只是混淆了什么使用,我想知道什么是最好的和常用的.

Flu*_*feh 5

我发现第二种方法最好:

//using named parameters
$stmt=$pdo->prepare('insert into test(name) value(:name)');
$stmt->execute(array(':name'=>$_POST['name']));
Run Code Online (Sandbox Code Playgroud)

你已经命名了params,所以你知道数组中的内容是什么 - 我讨厌?在代码中查看五个或更多内容并尝试确定顺序是否合适,并且需要更少的代码行来抛出一个数组并执行这一切都在同时通过多->bindParam()行.

如果这个选项不在桌面上,我会经历其他方面的许多方面->bindParam().

这个问题归结为个人偏好.选择最适合您的方法,易于阅读和理解的内容(特别是如果您在数周或数月之后再回过头来看)以及其他可能需要通过代码进行调试的人员可以轻松阅读.

编辑:没有什么比这更快.将查询放在一起可能需要花费几毫秒的时间,但查询将花费相同的时间在数据库上执行.真的不是更快看到这里.

  • @SuiGo很高兴能提供任何见解.我真的很高兴看到这些问题被问到,因为这意味着你真的在考虑*你的代码是如何工作的,并试图编写最好的代码 - 而且通常更容易从正确的习惯开始而不是在轨道上改变它们. (2认同)