插入到自定义表格时出错-wpdb类的对象无法转换为字符串

时间:2019-03-19 作者:David D\'Lima

尝试插入自定义表时出现上述错误。我无法找出错误的原因。

错误出现在第17行。非常感谢您的帮助。

代码如下:

<?php
session_start();
require_once "wp-load.php";
require_once "dbconfig.php";

global $wpdb, $current_user;
$current_user=wp_get_current_user();
$current_username = $current_user->user_login;
$table_name=\'persons\';
$first_name=$_POST[\'first_name\'];
$last_name= $_POST[\'last_name\'];
$email=$_POST[\'email\'];
$telephone=$_POST[\'telephone\'];

$wpdb->query( $wpdb->prepare(
"
 INSERT INTO $wpdb->$table_name
( first_name, last_name, email,telephone,user_name)
VALUES ( %s, %s, %s,%s,%s )
",
$first_name,$last_name,$email,$telephone,$current_username
) );

1 个回复
最合适的回答,由SO网友:Qaisar Feroz 整理而成

$wpdb->$table_name 不是有效的表名。使用$table_name

$wpdb->query( $wpdb->prepare(
"
 INSERT INTO $wpdb->$table_name
( first_name, last_name, email,telephone,user_name)
VALUES ( %s, %s, %s,%s,%s )
",
$first_name,$last_name,$email,$telephone,$current_username
) );
应该是

$wpdb->query( $wpdb->prepare(
"
 INSERT INTO $table_name
( first_name, last_name, email,telephone,user_name)
VALUES ( %s, %s, %s,%s,%s )
",
$first_name,$last_name,$email,$telephone,$current_username
) );