2017-06-21 7 views
-1

私は以下のコードを持っていて、それは私を狂わせてしまいます。PHPとMySQLでのデバッグの問題[短く]

function getText($id){ 
global $mysqli, $table_name; 

$sql = "SELECT `text` FROM $table_name WHERE `id` = $id;"; 
if($result = $mysqli->query($sql)){ 
    $row = $result->fetch_array(); 
    print $row["text"] . "<br>"; 
    return $row["text"]; 
} else { 
    printf("<br>" . $mysqli->error); 
} 

$result->free(); 
} 

私はエラーを取得する:致命的なエラー:

私はまた、これらのオンラインのエラーチェッカのいずれかを使用してみました、それは同じエラーをプリントアウトライン50上で...のgetText()を再宣言することはできません私はテキストボックスにこの関数を貼り付けます。 https://phpcodechecker.com/

誰でも私を助けることができますか?

+0

あなたが同じ名前( 'getText')との2つの以上の機能を持っている – modsfabio

+0

私はそれが問題ではないん..私も、コピー&ペーストだけでこの機能をこのhttps://phpcodechecker.com/へ – IchHabsDrauf

+1

'getText'の別の名前を選択すると – modsfabio

答えて

3

のgettextはPHP の組み込み関数である(読み:http://php.net/manual/en/function.gettext.php)を

これは、あなたが同じ名前を使用して独自の機能を行うことが許可されていないことを意味します。

あなたの関数の名前を他のものに変更すると動作します。 PHPで

+1

これが機能しました。私はそれをgetTheText()xpと命名した。それが私に許されるとすぐに正解とマークします。 – IchHabsDrauf

1

機能は、大文字と小文字を区別し

あなたはおそらく組み込みのローカライズ機能gettext()と衝突してきたではありません。そうでない場合でも、移植性のために関数の名前を変更する必要があります。

+0

はそれを実現しました。ありがとうございました – IchHabsDrauf

0

getTextはPHPの組み込み関数であるため、あなたの関数には構文エラーもほとんどないので、それが原因だと思います。

function getMyText($id){ 
global $mysqli, $table_name; 
$sql = "SELECT `text` FROM $table_name WHERE `id` =".$id; 
$result = $mysqli->query($sql); 
    if($result){ 
    $row = $result->fetch_array(); 
    print $row["text"] . "<br>"; 
    return $row["text"]; 
} else { 
    printf("<br>" . $mysqli->error); 
} 
    $result->free(); 
} 
+0

実際に関数の名前を 'getText1()'やそれに類するものに変更することは決してありません。コードを使用するには完全な地獄になり、目の瞬きの中で捨てられます。もっと説明的なものに変更してください。 – FMashiro

+0

phpはあなたの文字列の中の変数を分割せずに使うことができるので、 '" WHERE id = $ id "'を実行してもエラーは発生しません。 – IchHabsDrauf

+1

ok @IchHabsDrauf – SYB