php - 在 WordPress 中读取 sql 文件

标签 php mysql wordpress

我试图通过从 file.sql 中读取一些 sql 并将其放入字符串中来填充数据库表,然后再调用查询。但我似乎无法将文件加载到字符串中。给出了什么?

function db_data() {
    WP_Filesystem();
    global $wp_filesystem;
    global $wpdb;


    $table_name = $wpdb->prefix . "tableName";
    $file = "/sql/my_insert_query.sql";
    $sql_insert = "INSERT INTO $table_name (id, something) ";
    $sql_insert .= $wp_filesystem->get_contents( $file );
    $rows_affected = $wpdb->query( $sql_insert );
}

$sql_insert 结果是一个空字符串。我在这里做错了什么?

编辑:

找到了到达正确目录路径的方法。这是完成的代码:

function db_data() {
    WP_Filesystem();
    global $wp_filesystem;
    global $wpdb;

    $table_name = $wpdb->prefix . "tableName";
    $sql_insert = "INSERT INTO $table_name (id, something) ";
    $dir = plugin_dir_path( __FILE__ );
    $file =  $dir."/sql/my_insert_query.sql";
    $sql_values = $wp_filesystem->get_contents( $file );
    $sql_insert .= $sql_values;
    $rows_affected = $wpdb->query( $sql_insert );
}

有关查找和读取sql文件的答案。检查下面的答案。

最佳答案

我们首先开始调试文件路径问题。您可以在这里使用两个东西。

function db_data() {
    WP_Filesystem();
    global $wp_filesystem;
    global $wpdb;
    echo 'Current Path is '. __DIR__;
    $file =  __DIR__."/sql/my_insert_query.sql";
    if(!is_readable($file)) {
        echo 'File not found or not readable '.$file;
    }     
    $table_name = $wpdb->prefix . "tableName";

    $sql_insert = "INSERT INTO $table_name (id, something) ";
    $sql_insert .= $wp_filesystem->get_contents( $file );
    $rows_affected = $wpdb->query( $sql_insert );
}

这至少可以提供有关文件路径的更多信息。

关于php - 在 WordPress 中读取 sql 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24207309/

相关文章:

php - PHPMailer 的阿拉伯语问题

php - WordPress 在发现重复键时在日志中隐藏错误

带验证和 Paypal 的 PHP 联系表

php - CI - Flexi Auth,$this->flexi_auth->insert_user() 显示 "Creating default object from empty value"错误

php - MySQL选择9个随机和1个定义的记录

mysql - SQL:SUM 返回结果的最大值的总和

php - ExtJS 网格表单与 MySQL 中的文档

MySQL多次左外连接同一个表?

php - 网站加载时卡住几秒钟

html - 网站自动缩小? CSS 更改不会出现