Php Wordpress:使用HTML表单将get_current_user_id()结果放入my DB表
我有一个插件,它包含一个HTML表单,可以将POST数据发送到DB表。 除了一件事,它工作得非常好。登录用户的ID未发送到DB表。我想这可能是我在第2步之前的IF语句。我改变了很多次,但都没有结果。我所知道的是,这个if语句与GET请求一起工作,它实际上提供了用户的ID,但显然不与POST请求一起工作Php Wordpress:使用HTML表单将get_current_user_id()结果放入my DB表,php,mysql,wordpress,phpmyadmin,Php,Mysql,Wordpress,Phpmyadmin,我有一个插件,它包含一个HTML表单,可以将POST数据发送到DB表。 除了一件事,它工作得非常好。登录用户的ID未发送到DB表。我想这可能是我在第2步之前的IF语句。我改变了很多次,但都没有结果。我所知道的是,这个if语句与GET请求一起工作,它实际上提供了用户的ID,但显然不与POST请求一起工作 function ml_install() { // #1 CREATE TABLE global $wpdb; // creates ml_char in databa
function ml_install() {
// #1 CREATE TABLE
global $wpdb;
// creates ml_char in database if not exists
$table = $wpdb->prefix . "ml_char";
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE IF NOT EXISTS $table (
`wp_id` mediumint(9) NOT NULL,
`char_id` mediumint(9) NOT NULL AUTO_INCREMENT,
`name` text NOT NULL,
UNIQUE (`char_id`)
) $charset_collate;";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
// starts output buffering
ob_start();
if ( is_user_logged_in() ) {
$wpid = get_current_id();
}
// #2 CREATE HTML FORM
?>
<form action="#ml_form" method="post" id="ml_form">
<input type="hidden" name="wp_id" value="<? echo $wpid; ?>"/>
<input type="text" name="character_name" id="character_name" />
<input type="submit" name="submit_form" value="submit" />
</form>
<?php
$html = ob_get_clean();
// #4 INSERT FORM DATA INTO DB
if ( isset( $_POST["submit_form"] ) && $_POST["character_name"] && $_POST["wp_id"] != "" ) {
$table = $wpdb->prefix."ml_char";
$name = strip_tags($_POST["character_name"], "");
$wpdb->insert(
$table,
array(
'name' => $name,
'char_id' => $wp_id
)
);
$html = "<p>Greetings <strong>$name</strong>, and welcome to Hyreath.</p>";
}
函数ml\u install(){
//#1创建表格
全球$wpdb;
//如果不存在,则在数据库中创建ml_字符
$table=$wpdb->前缀“ml\u char”;
$charset\u collate=$wpdb->get\u charset\u collate();
$sql=“如果不存在,则创建表$TABLE(
`wp_id`mediumint(9)不为空,
`char_id`mediumint(9)非空自动增量,
`name`文本不为空,
唯一(`char\u id`)
)$charset_collate;“;
require_once(ABSPATH.'wp admin/includes/upgrade.php');
dbDelta($sql);
//开始输出缓冲
ob_start();
如果(用户是否已登录)(){
$wpid=get_current_id();
}
//#2创建HTML表单
?>
在执行sql查询时,您需要传递查询参数数组中的第三个参数:)看起来您忘记了:)好的,各位,我找到了问题所在。我在数组中拼错了一个列名。其他用户Webcitron为我指出了正确的方向
这是一段功能代码,允许我从WPDB的wp_users表中获取某人当前的Wordpress ID,并将其插入我自己的表中。因此,现在,每当用户来到我的网站并创建新字符时,所有这些字符都将属于该特定用户,而不是任何人。我真的希望这对某些人有所帮助我不知道
我知道你在说什么。但是,实际上只发送了两件东西。用户的选择名称和他们的Wordpress ID。第三个值是字符ID,在插入数据时,我的DB表会自动增加字符ID。很抱歉,我早就应该提到这一点。感谢webcitron的反馈!我非常复制了并根据我的需要修改了这个代码。这是一个巨大的帮助。