php - 这是什么意思?

标签 php prepared-statement

我在谷歌搜索时在一些代码示例中发现了这一点:

$sql = 'INSERT INTO users (username,passwordHash) VALUES (?,?)';

这对我来说是新的,但我猜它是一种替代方法,相当于

$sql = "INSERT INTO users (username,passwordHash) VALUES ($username,$passwordHash)";` 

$sql = 'INSERT INTO users (username,passwordHash) VALUES (' . $username . ',' . $passwordHash . ')';`

这样对吗?它是实际的 PHP 语法,还是他只是想简化他的示例?


谢谢大家的反馈

最佳答案

这在 prepared statements 中很常见. ? 仅用作占位符,如下面的 PHP 文档所示:

$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $value);

// insert one row
$name = 'one';
$value = 1;
$stmt->execute();

// insert another row with different values
$name = 'two';
$value = 2;
$stmt->execute();

关于php - 这是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4632744/

相关文章:

php - Zend 框架中的 HMVC

php - 如何将非字符串值传递到 PHP 中的准备语句中

java - 将大字符串转换为 bigInteger 并将其传递给准备好的语句

java - 从数据库中检索特定数据并显示

php - PDO 准备好的语句如何工作 “inside” ?

php - 如何添加 case 语句以在每条记录后添加 break?

php - postgresql pdo 连接速度非常慢

php - 根据时间间隔统计mysql表字段

php - 有一个可捕获的 fatal error

php - 在 mysqli 准备好的语句中使用数组 : `WHERE .. IN(..)` query