2016-06-15 1 views
-1

私はデータベースに電話番号を入力してから、スクリプトをリストの下に移動してそれらのすべてをテキストにするスクリプトを作成しようとしています。 「Nexmo」を使っているサービスには、URLに番号を入力してURLを実行してテキストを送信できるテスト機能があります。私はデータベースをセットアップして、データベースからの情報以外のURLを取得しましたが、私は2つの問題があります。PHPデータベースを継続して実行する

  1. 私のスクリプトは、最初のデータベースエントリを取得するだけで、IDでリストを下に移動する必要があります。

  2. は、私はそれがデータベースの次のエントリを取得し、それが可能なすべてのDBエントリexhaustesを持ってまで、次のテキストを送信するように自分自身を繰り返すTPスクリプトが必要。

例として、スクリプトの実行... URLにDBエントリ1が設定され、実行されます。テキストが送信されます。プロセスは、データベースにエントリがなくなるまで繰り返されますが、リンクを記入します。

私は、コードのほとんどを持っているだけで、私は削除機密情報を以下に掲載しています、どこか一つの小さなリンクをしないのです信じています。

これを読んだり、助けてくれてどうもありがとう。

<?php 
ini_set('max_execution_time', 1300); 

$dbhost = "localhost"; 
$dbname = "data_base"; 
$dbuser = "dbusername"; 
$dbpass = "passy"; 



$conn = mysql_connect($dbhost, $dbuser, $dbpass) or trigger_error(mysql_error(),E_USER_ERROR); 


mysql_select_db($dbname); 

    $sql = "SELECT * FROM ha_n ORDER BY `id` ASC"; 
    $res = mysql_query($sql) or die(mysql_error()); 
    $row = mysql_fetch_assoc($res); 


    $phone_fill = $row['phone_numbers']; 



$url = 'https://rest.nexmo.com/sms/json?api_key=5555555555&api_secret=555555555555&from=5555555555&to='.$phone_fill.'&text=Welcome+to+Nexmo'; 


$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/6.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.7) Gecko/20050414 Firefox/1.0.3"); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
$result = curl_exec ($ch); 
curl_close ($ch); 
+1

の可能性のある重複(http://stackoverflow.com/questions/5218088/mysql-fetch-array-does-not-retrieve-all- [mysqlの\ _fetch \ _arrayは、すべての行を取得しません]行) –

+1

また、[mysql_ *関数は廃止予定であり、使用しないでください](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)。 –

+0

私はちょうどPHPを学んでいる、新しい正しい方法はPODの権利ですか?私はまだ多くのことを学ぶ必要があります。 –

答えて

0
このよう

が、基本的に取得すること(mysql_ *関数)は減価償却およびPHP 7

while(false !== ($row = mysql_fetch_assoc($res))){ 


     $phone_fill = $row['phone_numbers']; 



    $url = 'https://rest.nexmo.com/sms/json?api_key=5555555555&api_secret=555555555555&from=5555555555&to='.$phone_fill.'&text=Welcome+to+Nexmo'; 


    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/6.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.7) Gecko/20050414 Firefox/1.0.3"); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
    $result = curl_exec ($ch); 
    curl_close ($ch); 
} 

のように除去されるように設定されているので、私は無地のmysqlの代わりにPDOまたはmysqliのを使用することをお勧めしすべての結果を反復処理する必要があります。これは基本的には$ row == falseまでループし、各行は次のレコードになるので、コール間にsleep(1)のようなものを追加することをお勧めします.1秒待ってから、APIを叩いてはいけませんが、また、ループ内でset_time_limit(300)を実行して、各部分を実行するためにPHPに300秒を与え、数があればタイムアウトではないようにすることもできます。

あなたはそれが毎晩のように実行したい場合は、あなたが持っている場合はC-パネルがダッシュボードになりますこれは、そのためのCRONのようなものを使用すると思います。私はその言葉を最初に研究したいと思う。しかし、基本的には、特定の時間や間隔でphpファイルを実行することができます。スケジューラのように。

http://php.net/manual/en/book.pdo.php