即使经过大量阅读,我也没有得到任何东西。如果我不使用 bindValue 或 bindParam,PDO 是否会转义数据?也许我不明白“准备”到底是做什么的。我知道它将过程存储为对象。我知道它的性能优势(甚至与事务一起使用)但转义是我唯一不明白的事情
假设:
$db = new PDO('mysql:host=' . $config['db']['host'] . ';dbname=' . $config['db']['dbname'], $config['db']['username'], $config['db']['password'], $config['db']['options']);
$query = $db->prepare("INSERT INTO table (col1, col2) VALUES (:col1, :col2)");
$result = $query->execute(array('col1' => $val_col1, 'col2' => $val_col2));
实际逃生在哪里/何时进行?在准备或绑定参数/值时?如果我跳过这个怎么办:
$query->bindParam(":col1", $val_col1);
$query->bindParam(":col2", $val_col2);
请注意,我将PDO::ATTR_EMULATE_PREPARES设置为false(它在 $config 数组中设置)
使用 PHP 5.4.13 和 MySQL 5.1.67