-1
if (!$errors) {
$salt = time();
$pwd = sha1($password . $salt); 
$mysqli = new mysqli('localhost','user','password','database');
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
exit(); 
}
$stmt = $mysqli->prepare("INSERT INTO users VALUES (?,?,?,?,?,?)");
$stmt->bind_param('ssssss',$username,$pwd,$lastloggedin,$role,$paswordchangedate,$salt);

これは私のコード スニペットです。私は数え切れないほど (私の指でも..) - 接続が機能し、エラーを取得するために var_dump($mysqli->error) を実行しました。Mysqlにログインしてテーブルを説明すると、7行が表示されます

Field             Type         Null  Key  Default  Extra
id                 int(11)     No    Pri  Null     auto_increment
username           varchar(50) Yes   Uni  Null   
password           varchar(50) Yes        Null
lastloggedin       datetime    Yes        Null
role               varchar(20) Yes        Null
paswwordchangedate datetime    Yes        Null
salt               int(11)     Yes        Null
4

2 に答える 2

0

クエリを次のように変更します。

$stmt = $mysqli->prepare("INSERT INTO users VALUES (null,?,?,?,?,?,?)");
$stmt->bind_param('ssssss',$username,$pwd,$lastloggedin,$role,$paswordchangedate,$salt);

最初の値をNullautoincrement に追加したことに注意してください。id フィールドがありませんでした。

フィールド名を指定しない場合は、すべてのフィールドが含まれていることを確認する必要があることに注意してください。

これもうまくいくはずです:

$query = "INSERT INTO users (username,password,lastloggedin,role,paswwordchangedate,salt)
          VALUES (?,?,?,?,?,?) ;";
于 2013-09-03T23:14:59.190 に答える