我试图理解使用 PHP 和 mysqli 准备好的语句。我试图阅读一些教程、手册和这个:Bind_Param in PHP,但我还没有找到任何令人满意的答案。
有人在回答中写道:
准备 SQL 语句时,您可以在列值所在的位置插入占位符 (?),然后使用 bind_param() 安全地将占位符替换为实际列的值。这可以防止任何 SQL 注入的可能性。
我在这样的教程中找到了一些代码:
$stmt = $con->prepare("INSERT INTO user_accounts VALUES (?,?,?,?)");
$stmt->bind_param('xyz', $sample1, $sample2, $sample3, $sample4); // bind to the parameter
我明白我们写的是“?” 而不是我们的变量,以便稍后可以给出实际值。MySQL 为查询执行准备一个计划,然后将变量作为参数给出。
这行代码是什么意思?
bind_param('xyz', $sample1, $sample2, $sample3, $sample4);
四个变量以“xyz”作为参数给出......参数“xyz”到底是什么意思?有没有必要写,以后还会用吗?我没有发现它在其他地方使用过。
我只想要第一个参数的答案: