我在使用下面的函数时遇到了一个错误,我正在为WordPress编写插件:
您的SQL语法有错误;查看手册与您的MySQL服务器版本相对应,以便使用正确的语法接近第2行的'0,'1','',)'
输入值为:"user1',"pass1',"fredy","incoln","Batman",0'987','31231',1980
结果查询为:
query("INSERT INTO tblusers(UserUserName,UserPassword,UserFirstName,UserLastName,UserNickName,UserSex,UserMobile,UserNationalCode,UserBirthDate)
VALUES ( 'user1', 'pass1', 'fredy','lincoln',,0,'1','', ) ") //error is here//
function complete_registration() {
global $wpdb,$reg_errors, $username, $password, $email, $mobile, $first_name, $last_name, $nickname,$gender, $birthdate ;
if ( 1 > count( $reg_errors->get_error_messages() ) ) {
$wpdb->show_errors();
$wpdb = new wpdb('username','*****','mydb','x.x.x.x');
$wpdb->tblusers = 'tblusers';
$sql = $wpdb->prepare( "INSERT INTO $wpdb->tblusers(UserUserName,UserPassword,UserFirstName,UserLastName,UserNickName,UserSex,UserMobile,UserNationalCode,UserBirthDate)
VALUES ( %s, %s, %s,%s,$s,%d,%s,%s,$s )
" ,
array(
$username,
$password,
$first_name,
$last_name,
$nickname,
$gender,
$mobile,
$email,
$birthdate
) );
$wpdb->query($sql);
}
看起来你有几个拼写错误,$s
而不是%s
,导致蝙蝠侠和1980消失:
VALUES ( %s, %s, %s,%s,$s,%d,%s,%s,$s )
只需将其更改为:
VALUES (%s, %s, %s, %s, %s, %d, %s, %s, %s)
尝试一些接近这个的东西
query("INSERT INTO tblusers(UserUserName,UserPassword,UserFirstName,UserLastName,UserNickName,UserSex,UserMobile,UserNationalCode,UserBirthDate)
VALUES ( 'user1', 'pass1', 'fredy','lincoln','nickname','male','+254716370730','254','1993-02-18' ) ")
欢呼