在提交用户详细信息后,我正在尝试查询数据库以检查电子邮件是否已注册。
但是,我收到以下代码(摘录)的“严格标准:仅应通过引用传递变量”错误:
} else if (isset($_POST['srSubmit']) && $_POST['srEmail']) {
//check if email already taken
if ($stmtreg = $mysqli->prepare("SELECT user_email FROM users WHERE user_email = ?")) {
$stmtreg->bind_param("s", strtolower($_POST['srEmail']));
$stmtreg->execute();
$stmtreg->store_result();
$num_rows = $stmtreg->num_rows();
$stmtreg->bind_result($email);
$stmtreg->fetch();
$stmtreg->close();
}
Run Code Online (Sandbox Code Playgroud)
我有两个问题:i) 为什么即使出现此错误脚本仍然有效?a ii) 是什么原因造成的,我该如何解决?
谢谢
为 设置一个临时变量strtolower($_POST['srEmail']),例如:
$email = strtolower($_POST['srEmail']);
Run Code Online (Sandbox Code Playgroud)
然后传入$email您的bind_param. 即使 strtolower() 返回一个字符串,PDO 也不能引用它,因为它不是一个变量。
| 归档时间: |
|
| 查看次数: |
1307 次 |
| 最近记录: |