0

サーバー間でデータを転送していて、wiki データベースのリンクをいくつか変更する必要があります。これを問題なく実行できる簡単なスクリプトを作成しました。しかし、実行すると、if($datacount)条件は決して実行されません。これはおそらく私が見逃している単純なものですが、問題が何であるかわかりません。

$dbconn = pg_connect("host= localhost port=5432 dbname=wiki user=user password=password");
$sql = "SELECT old_text FROM wiki_public.pagecontent LIMIT 10";
$go = pg_query($dbconn,$sql);
$i=0;
$string = 'sometext';
while($data = pg_fetch_assoc($go)) {
  $info = $data['old_text'];
  $count = strlen($string);
  $datacount = strlen($info);
  echo "Length: ".$datacount."<br/>";
  if($datacount != 0) {
    $position = strpos($string,$info);
    if($position !== false) {
      echo "The string ".$string." was found in row ".$i." and exists at position ".$position."The original content was: ".substr($info, $position,$count)."<br/>";
    }
  }
  $i++;
}

ありがとう! 編集

条件を削除すると$datacount、これが私の出力です

Length: 0

Warning: strpos(): Empty delimiter in D:\www\import\linksupadte.php on line 12
Length: 12
Length: 0

Warning: strpos(): Empty delimiter in D:\www\import\linksupadte.php on line 12
Length: 31
Length: 31
Length: 0

Warning: strpos(): Empty delimiter in D:\www\import\linksupadte.php on line 12
Length: 444
Length: 1614
Length: 153
Length: 125
4

1 に答える 1

1

私は今日、私にとって脳のない日を宣言しています。

<?php
# Database connection snipped.

# Let's say the database contains at least one row that's a substring
# of $string. Something like 'John', or '/123/'.
$string = 'John/123/456/789/012';
while($data = pg_fetch_assoc($go)) {

  $position = strpos($string, $data['old_text']);

  if ($position !== false) {
    echo "$string contains ".$data['old_text'];
  }
  else {
    echo "$string does not contain ".$data['old_text'];
  }
}

?>
于 2013-03-19T16:07:24.063 に答える