php - 不能通过引用传递参数
问题描述
我正在尝试为我正在从事的项目制作 PHP 安装程序。当我点击安装程序上的提交按钮时,会导致出现此错误:
致命错误:未捕获错误:无法通过引用传递参数 2。
代码:
$stmt = $db->prepare("INSERT INTO `users` (`user_id`, `email`, `password`, `name`, `token_code`, `email_activation_code`, `lost_password_code`, `facebook_id`, `type`, `active`, `language`, `date`, `ip`, `last_activity`, `last_user_agent`, `total_logins`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
$stmt->bind_param("ssssssssssssssss", '1', $adminEmail, $adminPass, $adminUsername, '', '', '', '', '1', '1', 'english',);
$adminEmail = $_POST['admin-email'];
$adminUsername = $_POST['admin-username'];
$adminPass = password_hash($_POST['admin-password'], PASSWORD_DEFAULT);
$stmt->execute();
解决方案
Bind_param 只接受变量而不接受 '' 或 '1'
所以定义一个变量并将其添加到bind_param,
$stmt = $db->prepare("INSERT INTO `users` (`user_id`, `email`, `password`, `name`, `token_code`, `email_activation_code`, `lost_password_code`, `facebook_id`, `type`, `active`, `language`, `date`, `ip`, `last_activity`, `last_user_agent`, `total_logins`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
$emptvar = '';
$one = '1';
$language = 'english';
$stmt->bind_param("ssssssssssssssss", $one, $adminEmail, $adminPass, $adminUsername, $emptvar , $emptvar , $emptvar , $emptvar , $one, $one, $language,);
$adminEmail = $_POST['admin-email'];
$adminUsername = $_POST['admin-username'];
$adminPass = password_hash($_POST['admin-password'], PASSWORD_DEFAULT);
$stmt->execute();
推荐阅读
- node.js - 在 React Native 中存储密钥的最安全方式是什么
- laravel - Vue:在它自己的 Github 仓库中有前端?
- javascript - 必须包含小数点的数字的正则表达式
- haskell - 保存超出控制结构的值
- android - 无法在 MAC OS 中的 Apache Cordova 中为 Android SDK 在 WebStorm 中设置 PATH
- python - Spotipy 音频功能返回类型错误
- r - R错误地计算了数据框中两个单元格的平均值
- sitecore - Sitecore 在此处添加按钮未显示“添加渲染”对话框
- rust - 如何从 Rust 的内存缓冲区执行原始指令?
- java - 计算数字的位数总和时数组溢出