此代码有什么问题
|
class MyClass {
private $db;
// Constructor
function __construct() {
$this->db = new mysqli(\'localhost\', \'root\', \'root\', \'Test_db\');
$this->db->autocommit(FALSE);
}
// Destructor
function __destruct() {
$this->db->close();
}
// Main method
function MyFun() {
// Check for required parameters
if (isset($_POST[\"name\"]) && isset($_POST[\"username\"]) && isset($_POST[\"password\"]) && isset($_POST[\"email\"])) {
echo \"Before \\n\";
$name = $_POST[\"name\"];
$username = $_POST[\"username\"];
$password = $_POST[\"password\"];
$email = $_POST[\"email\"];
$activation = 0;
echo \"After \\n\";
// tracking
$stmt = $this->db->prepare(\"INSERT INTO users (name, username, password, email,activation) VALUES (?, ?, ?, ?, ?)\");
$stmt->bind_param(\"is\", $name, $username, $password, $email, $activation); //Line 95
$stmt->execute();
$stmt->close();
}
输出:
之前
后
无效的请求
MAMP控制台:
[15-Apr-2011 15:09:10] PHP Warning: mysqli_stmt::bind_param() [<a href=\'function.mysqli-stmt-bind-param\'>function.mysqli-stmt-bind-param</a>]: Number of elements in type definition string doesn\'t match number of bind variables in /Applications/MAMP/htdocs/Test/reg.php on line 95
数字相同,但我不知道为什么会出现此错误
没有找到相关结果
已邀请:
3 个回复
屑凉赦
您的\“ definition \”字符串(\“ is \”)仅包含两个定义,整数和字符串...您应该在那里有5个。
... 例如 ...
抢垢洛韧
占位符,但是您正在尝试为查询添加六个值。 $ stmt-> bind_param(\“ is \”,$ name,$ username,$ password,$ email,$ activation); \“是\” $名称 $用户名 $密码 $ email $激活 您提供的格式仅包含2个定义,但必须包含5个定义才能匹配您的查询。试试
。
疾桓
从bind_param中删除:
或添加到字段名称:
要么 $ stmt = $ this-> db-> prepare(\“ INSERT INTO users(name,username,password, 电子邮件,激活)VALUES(?,?,?,?,?)\“); $ stmt-> bind_param(\“ issss \”,$ name,$ username,$ password,$ email,$ activation);