1

ワードプレスでカスタムプラグインを開発しようとしています。次のスクリプトを呼び出すフォームを作成しました。

<?php
global $wpdb;
$sql="insert into wp_wbp_unpublished values(null,'".$_POST['bibkey']."',
'".$_POST['author']."','".$_POST['title']."','".$_POST['date']."','".$_POST['note']."',
'".$_POST['keywords']."','nothing');";
echo $sql;
//$wpdb->show_errors();
$wpdb->insert("wp_wbp_unpublished",array('uid'=>null,'pid'=>$_POST['bibkey'],
'author'=>$_POST['author'],'title'=>$_POST['title'],'year'=>$_POST['date'],
'note'=>$_POST['note'],'keyword'=> $_POST['keywords'],'abstract'=>"null"));
$wpdb->query($sql);
//$wpdb->print_error();
?>

ご覧のとおり、データベースにデータを挿入するために 2 つの異なる方法を試しましたが、うまくいきませんでした。SQL文字列は正しいです。確認しました。しかし、insert()/query() コマンドに問題があります。何が間違っているかの提案はありますか?

4

3 に答える 3

0

正直なところ、あなたのコードに問題はありません。結局のところ、私はいつも、Wordpress がひどいものだと非難しています。ユーザーがインデックスファイルにログインしてdbに変更を加えようとした場合を除いて、私は同じ問題を抱えています。なぜ誰もこの質問に答えていないのですか?すごい

于 2013-08-09T22:10:15.117 に答える
0

セミコロン(); を削除する必要があります。カスタムまたは最初の挿入クエリで

$sql="insert into wp_wbp_unpublished values(null,'".$_POST['bibkey']."',
'".$_POST['author']."','".$_POST['title']."','".$_POST['date']."','".$_POST['note']."',
'".$_POST['keywords']."','nothing');";

そして、プラグインを作成するときは、関数に「upgrade.php」ファイルを配置する必要があります...うまくいくことを願っています。

于 2014-08-28T11:07:48.873 に答える
0

私は次の解決策を使用しましたが、これが最善と思われます。

$wpdb->insert( $table, $data, $format );

例えば:

$wpdb->insert(
        $prefix.'wp_wbp_unpublished',
        array('bibkey'=>$_POST['bibkey'],'author'=>$author),
        array('%s','%s')
        );

詳細: https://codex.wordpress.org/Class_Reference/wpdb#INSERT_row

于 2017-12-18T10:51:03.207 に答える