2017-03-12 10 views
0

こんにちは私は私のスクリプトに問題があります。最近すべてのスクリプトをPHP 7にアップグレードしましたが、私はほとんど完了しましたが、このエラーは解決しません.....Notice:オブジェクト以外のエラーのプロパティを取得しようとしています

通知:/mnt/web121/d2/33/58167933/htdocs/includes/functions.phpの行201の非オブジェクトのプロパティを取得しようとしています

この問題で私を助けてくれますか?

if ($per->status == "Dead" or $per->status or "Banned"){ 
+0

ここにエラーメッセージはありません。 –

+0

ごめんなさい:通知:/mnt/web121/d2/33/58167933/htdocs/includes/functions.php行201の非オブジェクトのプロパティを取得しようとしている –

+0

SQLインジェクション、文字列を使用変数のように、 '=='の代わりに 'または'を使用します。あなたの本をもう一度読むことをお勧めします。 –

答えて

0
$drop = $con->query("SELECT owner FROM casinos"); 
while ($tard = $drop->fetch_row()) { 
    $con->prepare("SELECT status,casino,owner FROM users WHERE username=?") 
     ->bind_param("s", $tard[0])->execute() 
     ->bind_result($status, $casino, $owner)->fetch()->close(); 
    if (in_array($status, ["Dead", "Banned"], true)) { 
     $con->prepare("UPDATE casinos SET OWNER='0' WHERE casino=? and owner=?") 
      ->bind_param("ss", $casino, $owner)->execute(); 
    } 
} 

あなたのSQLのフィールド名を再確認してください:

$drop =mysqli_query($con,"SELECT * FROM casinos"); 

while($tard=mysqli_fetch_object($drop)){ 
    $per = mysqli_fetch_object(mysqli_query($con,"SELECT * FROM users WHERE username='$tard->owner'")); 
    if ($per->status == "Dead" or $per->status or "Banned"){ 
     mysqli_query($con,"UPDATE casinos SET owner='0' WHERE casino='$tard->casino' AND owner='$tard->owner'"); 
    } 

} 

これはライン201です。

+0

ありがとう、私は何秒間bind_param "s" do do it doそれを修正しますか? bind_param "ss"? –

+0

bind_paramは、SQLインジェクションを回避する有効な方法です。 「s」は1つの文字列を意味し、「ss」は2を意味する。 –

+0

もう一度私を助けてくれてありがとう。 私の考えでは分かりませんが、スクリプトには以下のような多くのルールがあります。SELECT * FROM users *は何を表しますか?あなたはそれを所有者に置き換えましたが、*が意味するところをどのように見つけることができますか? –

関連する問題