【问题标题】:Call to a member function insert() on null在 null 上调用成员函数 insert()
【发布时间】:2026-02-17 07:05:01
【问题描述】:

我在 WordPress 中遇到插入问题,处理表单时出现此错误消息。 我上传了一张图片,然后将图片的 url 插入到 bdd 中。 图片的上传正在工作,但在插入时我有一个错误:

致命错误:在 null 上调用成员函数 insert()

我的脚本处理_上传:

lalala();

function lalala() {
    $extensions_valides = array('jpg', 'jpeg', 'gif', 'png');

    $extension_upload = strtolower(substr(strrchr($_FILES['icone']['name'], '.'), 1));
    if (in_array($extension_upload, $extensions_valides))
        echo "Extension correcte";
///Créer un identifiant difficile à deviner
    $nom = md5(uniqid(rand(), true));


    $nom = "fichier/$nom.{$extension_upload}";
    $resultat = move_uploaded_file($_FILES['icone']['tmp_name'], $nom);
    if ($resultat)
        echo "Transfert réussi";

    $url_img = "wp-content/plugin/fichier/$nom";

    blabla($url_img);
//pause($url_img);
}



function blabla($url_img){
global $wpdb;
$wpdb->insert(
        'test', //table name
        array(
    'id' => "",
    'titre' => $url_img,
        ), //columns
        array(
    '%d',
    '%s',
        )
);
}

我的表格:

<form method="post" action="http://localhost/wordpress/wp-content/plugins/traitement_upload.php" enctype="multipart/form-data">
     <label for="icone">Upload image :</label><br />
     <input type="file" name="icone" id="icone" /><br />
<!--     <label for="mon_fichier">Fichier (tous formats | max. 1 Mo) :</label><br />
     <input type="hidden" name="MAX_FILE_SIZE" value="1048576" />
     <input type="file" name="mon_fichier" id="mon_fichier" /><br />-->
     <label for="titre">Titre du fichier (max. 50 caractères) :</label><br />
     <input type="text" name="titre" value="Titre du fichier" id="titre" /><br />
     <label for="description">Description de votre fichier (max. 255 caractères) :</label><br />
     <textarea name="description" id="description"></textarea><br />
     <input type="submit" name="submit" value="Envoyer" />
</form>

【问题讨论】:

  • 您应该显示$wpdb 定义。
  • WordPress 是否真的与您的数据库建立了连接。看起来可能不是
  • @ben,我认为你应该从插入函数中删除id,并将$wpdb首先定义为全局函数。

标签: php mysql wordpress


【解决方案1】:

导致该消息的直接问题是$wpdb 变量为空。这表明您的代码没有作为 WordPress 插件运行,因此在执行代码之前没有包含正确的 WordPress 包含文件。对此的解决方案已在How to include $wpdb in wordpress plugin? 中讨论过

【讨论】:

    最近更新 更多