bash脚本在wordpress db上运行sql查询

时间:2014-04-30 10:00:47

标签: php wordpress bash

我有一个奇怪的问题。这是一个3步骤的场景。

  1. 我有一个代码,可以从Youtube上的给定Youtube网址下载我的ftp目录中的视频

  2. 所以我有一个代码向bash脚本发出后台命令,该脚本在后台下载重型视频(在ftp目录下)

  3. 现在,下载完成后,bash脚本将调用一个PHP文件来更新WordPress中的条目。

  4. 问题所在 视频在我的ftp目录下正常下载。并且bash脚本也可以正常工作,直到调用我的PHP文件来更新数据库条目。

    这是我的bash脚本代码

    #!/bin/bash
    wget -o $1 --output-document=$2 $3 &
    wait
    /usr/bin/php ../cron/vids_pending_download.php $4
    exit
    

    此脚本运行正常,并调用具有此代码的PHP文件。

    require('../../wp-config.php');
    require('../inc/inc_config.php');
    
    $vid_key = trim($argv[1]);
    #$vid_key = '123_video_key';
    
    $sql_get_vids = "SELECT vid_id, vid_name, file_size, vid_usr FROM " . $wpdb->prefix . "video_table WHERE vid_name = '".$vid_key."' ";
    $vid_info = $wpdb->get_row($sql_get_vids);
    if ($vid_info != null) {
    echo 'video found';
    } else {
    echo 'video not found';
    }
    

    现在问题是,如果我向我的sql提供一个固定的$ vid_key,它的工作原理很完美。但是如果我从bash中带来数组中的$ vid_key,它会带来空结果集。但是,如果我打印sql并粘贴在phpMyAdmin中,它会使记录正常,这意味着记录就在那里。

    寻求帮助。谢谢大家。

1 个答案:

答案 0 :(得分:0)

问题解决了。原因是bash脚本反过来太快了,并寻找下一个文件。虽然它正在这样做,但是没有执行插入到db中的实际代码。因此,返回文件的记录不可用。

此问题发生在将命令提交给bash文件的实际文件中。

再次感谢所有人的帮助