-1

私はこれに注ぎ込みましたが、エラーの原因となっている可能性のあるものを見つけることができません。助言がありますか?

$sql = "INSERT INTO users (`id`, `username`, `password`, `firstname`, 
        `lastname`, `photo`, `mobile`, `fax`, `bday`, `homeadd`, `city`,
        `state`, `zip`, `mailingadd`, `altfax`, `altphone`, `email`,
        `emailpass`, `website`, `bio`, `designations`, `photo2`, `type`,
        `confirmed_email`, `registered_on`, `disabled`, `admin_disabled`)
        VALUES (NULL, $username, MD5('$password'), $firstname, $lastname, 
        '', 'test', '', '', '', '', '', '', '', '', '', $email, '', '', '', '',
        '', 'agent', '1', NOW(), $disabled, 0)";`
4

4 に答える 4

1

すべての文字列値にエスケープを追加します。これがphp関数です: mysqli_real_escape_string()そして、 PDOを使用してコードをリファクタリングする必要があります

于 2013-06-12T19:40:03.987 に答える
0

変数は引き続き一重引用符で囲む必要があります。を挿入するときはいつでも'$variable'、それを一重引用符で囲みます。

于 2013-06-12T19:24:32.077 に答える
0

個々の値を引用符で囲む必要があります。

$sql = "INSERT INTO users (id,username,password,firstname,lastname,photo,mobile,fax,bday,homeadd,city,state,zip,mailingadd,altfax,altphone,email,emailpass,website,bio,designations,photo2,type,confirmed_email,registered_on,disabled,admin_disabled) VALUES (NULL, '$username', MD5('$password'), '$firstname', '$lastname', '', 'test', '', '', '', '', '', '', '', '', '', '$email', '', '', '', '', '', 'agent', '1', NOW(), $disabled, 0)";
于 2013-06-12T19:25:00.523 に答える
0

変数を引用していません:

$sql       = "INSERT INTO users 
(`id`, `username`, `password`, `firstname`, `lastname`, `photo`, `mobile`, `fax`, `bday`, `homeadd`, `city`, `state`, `zip`, `mailingadd`, `altfax`, `altphone`, `email`, `emailpass`, `website`, `bio`, `designations`, `photo2`, `type`, `confirmed_email`, `registered_on`, `disabled`, `admin_disabled`) VALUES 
(NULL, '$username', MD5('$password'), '$firstname', '$lastname', '', 'test', '', '', '', '', '', '', '', '', '', '$email', '', '', '', '', '', 'agent', '1', NOW(), '$disabled', 0)";   

mysql_* 関数は非推奨であり、将来のバージョンでは機能しないため、これらの関数から離れることを強くお勧めします。PDO または MySQLi を使用する場合は、バインディング関数を使用できるため、値の引用について心配する必要はありません。

于 2013-06-12T19:25:38.280 に答える