簡體   English   中英

MySQL'bind_param'語句似乎不起作用-UserCake定制

[英]MySQL 'bind_param' statement doesn't seem to work - UserCake cutomization

所以我正在使用UserCake進行項目。 我已將字段添加到“用戶”表。 到目前為止,一切正常。 我遇到的問題是注冊時返回成功,但是SQL語句未將任何表單數據放入數據庫中。

到目前為止,我已經成功添加了必填字段,並且能夠從這些字段中提取數據,但是,我無法將數據推送到數據庫中。 我覺得這與bind_param語句有關,但是我不確定。 這是我要處理的內容:

編輯9/30 5pm >>>這時唯一的問題是沒有將數據放入表中。

$stmt = $mysqli->prepare("INSERT INTO ".$db_table_prefix."users (
                password,
                email,
                activation_token,
                last_activation_request,
                lost_password_request,
                active,
                title,
                sign_up_stamp,
                last_sign_in_stamp,
                company,
                address_1,
                address_2,
                city,
                state,
                zip,
                paid,
                first_name,
                last_name
                )
                VALUES (
                ?,
                ?,
                ?,
                '".time()."',
                '0',
                ?,
                'New Member',
                '".time()."',
                '0',
                ?,
                ?,
                ?,
                ?,
                ?,
                ?,
                '0',
                ?,
                ?
                )");

            $stmt->bind_param("sssisssssiiss", $secure_pass, $this->clean_email, $this->activation_token, $this->user_active, $this->company, $this->address_1, $this->address_2, $this->city, $this->state, $this->zip, $this->first_name, $this->last_name);
            $stmt->execute();
            print_r($stmt);
            $inserted_id = $mysqli->insert_id;
            $stmt->close();

編輯>>>解決了空數組問題

我這樣稱呼新用戶:$ user = new User($ password,$ email,$ token,$ activationRequest,$ passwordRequest,$ active,$ title,$ signUp,$ signIn,$ company,$ address_1,$ address_2 ,$ city,$ state,$ zip,$ paid,$ first_name,$ last_name);

編輯>>>表uc_usersid int(11)NOT NULL, password varchar(225)NOT NULL,

email varchar(150)NOT NULL,

activation_token varchar(225)NOT NULL,

last_activation_request int(11)非空,

lost_password_request tinyint(1)非空,

active tinyint(1)NOT NULL,

title varchar(150)NOT NULL,

sign_up_stamp int(11)非空,

last_sign_in_stamp int(11)非空,

company varchar(50)默認為NULL,

address_1 varchar(50)NOT NULL,

address_2 varchar(50)NOT NULL,

city varchar(50)NOT NULL,

state varchar(20)NOT NULL,

zip int(5)NOT NULL,

paid tinyint(1)NOT NULL,

first_name varchar(50)NOT NULL,

last_name varchar(50)非空

)ENGINE = InnoDB DEFAULT CHARSET = utf8 AUTO_INCREMENT = 3;

您表上的字段Company不允許NULL值,但是您將其發送為null正如我在您的問題(print_r($ this)部分)中看到的那樣。

因此,您有2種方法可以解決此問題,

  1. 如果您確實需要公司,請根據需要設置“公司”字段,並在驗證過程中(發送查詢后)進行檢查,這樣可以避免此類問題。
  2. 否則,更改數據庫中的company字段,並允許使用NULL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM