将数据插入到 WPDB 自定义表中



WPDB 插入错误

我需要帮助。我是wordpress/php编码的新手。我在存储在主题文件夹中的 php 模板文件中编写了一个 wpdb 插入。 该代码的目的是将表单数据插入到自定义表中。见下文。 编写的代码:

if (isset($_POST["submit"])) {
    //    global $wpdb;
$cit1 = $_POST['cit1'];
$cit2 = $_POST['cit2'];
$cit3 = $_POST['cit3'];
$cit_text = $_POST['cit_text'];
$success = $wpdb -> insert(
wp_citations,
array(
'cit_id' => null,
'cit1' => $cit1,
'cit2' => $cit2,
'cit3' => $cit3,
'cit_text' => $cit_text,
'timestamp' => null
),
array(
'%s',
'%s',
'%s',
'%s'
)
);
}

但是,我使用了来自参考法典的打印错误<?php $wpdb->print_error(); ?>函数,并将其作为错误收到:

"SELECT * FROM wp_posts WHERE (post_type = 'page' AND post_status = 'publish') ORDER BY menu_order,wp_posts.post_title ASC"

我正在编写的脚本不包含任何 wp 生成的表,仅包含我创建的自定义表。 我只能假设这是一个钩子或 wp 编码连接。

以前有人见过这个吗?如何绕过 wp 内部编码来使用新 php 文件中明确调用的内容?

不知道该尝试什么。

尝试以下代码 -

if (isset($_POST["submit"])) {
global $wpdb;
$cit1 = $_POST['cit1'];
$cit2 = $_POST['cit2'];
$cit3 = $_POST['cit3'];
$cit_text = $_POST['cit_text'];
$insert_array = array(
'cit_id' => NULL,
'cit1' => $cit1,
'cit2' => $cit2,
'cit3' => $cit3,
'cit_text' => $cit_text,
'timestamp' => NULL
);
$success = $wpdb->insert(wp_citations,$insert_array);
}

此外,理想情况下,"时间戳"不应为 NULL。它应该在 MySql 数据库结构的"默认"列中current_timestamp。

请尝试以下代码,并始终尝试遵循相同的方式轻松跟踪错误。希望这能帮助你 -

<?php 
/* Template Name: Driver Monitor Page */
get_header(); 
?>
<?php
global $wpdb;
$result = $wpdb->get_results ("SELECT * FROM wp_ccr_info WHERE hoa_id = 4", ARRAY_A);
?>
<form method="GET" action="">
<label>Choose an Item to Citation: </label>
<select id="cit1" required>
<option value="">Select a CCR Option</option>
<?php
foreach($result as $row){
?>
<option value="<?php echo $row[ccr_item]; ?>"><?php echo $row[ccr_item]; ?></option>
<?php 
}
?>
</select>
<br><br>
<label>Choose an Item to Citation 2: </label>
<select id="cit2">
<option value="">Select a CCR Option</option>
<?php
foreach($result as $row
?>
<option value="<?php echo $row[ccr_item]; ?>"><?php echo $row[ccr_item]; ?></option>
<?php 
}
?>
</select>
<br><br>
<label>Choose an Item to Citation 3: </label>
<select id="cit3">
<option value="">Select a CCR Option</option>
<?php
foreach($result as $row
?>
<option value="<?php echo $row[ccr_item]; ?>"><?php echo $row[ccr_item]; ?></option>
<?php 
}
?>
</select>
<br><br><br><br><br><br> <!-- why so many br tags ?-->
<textarea id="cit_text" maxlength="255" placeholder= "Explain any citation.">
</textarea>
<!-- add 2 more drop down menus
//add and text area
//add photos
-->
<br><br><input type="submit" value="Submit">
</form>
<?php
if (isset($_POST["submit"])) {
global $wpdb;
$cit1 = $_POST['cit1'];
$cit2 = $_POST['cit2'];
$cit3 = $_POST['cit3'];
$cit_text = $_POST['cit_text'];
$insert_array = array(
'cit1' => $cit1,
'cit2' => $cit2,
'cit3' => $cit3,
'cit_text' => $cit_text
);
$success = $wpdb->insert(wp_citations,$insert_array);
}
?>
<?php get_footer(); ?>

始终避免不必要的空格,以避免标头已发送错误。祝您编码愉快!

最新更新