2016-05-22 4 views
-1

私は32以上のアップロードされたソリューションを試しましたが、何も正しいとは思われません - 誰でも私を助けることができますか?私は定義されていないインデックスを取得しています。それらの問題を解決すると、私は下に示す致命的なエラーを受け取り続けます。私が間違っていることは考えられません。 ?_?誰かが私を啓発することはできますか?致命的なエラー:PDOステートメント未定義のメソッド&未定義のインデックス?

P.S;それは重複した致命的なエラーではなく、重複した投稿や関連性の問題ではありません。

エラー

Notice: Undefined index: somename in /homepages/29/d599905820/htdocs/index.php on line 22 

Notice: Undefined index: username in /homepages/29/d599905820/htdocs/index.php on line 23 

Fatal error: Call to undefined method PDOStatement::bind_param() in /homepages/29/d599905820/htdocs/index.php on line 26 

HTML

<form action="" method = "POST"> 
     <input type="radio" name="someName" value="ip"> IP<br> 
     <input type="radio" name="someName" value="uid"> UID<br> 
     Enter Name: <input type="text" name="name" > <br> 
     <input type="submit" name="submit"> 
    </form> 

あなたはあなたのhtml、SOMに間違った名前を使用している

<?php 
      error_reporting(E_ALL); 
      $submit=isset($_POST['submit']); 
      if($submit) 
{ 
       $name=$_POST['somename']; 
       $username=$_POST['username']; 
       $con = new PDO('mysql:host='.$db_hostname.';dbname='.$db_database.';charset=utf8mb4', $db_termname,$db_password, array(PDO::ATTR_EMULATE_PREPARES => false,PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); 
       $stm=$con->prepare('SELECT * FROM users WHERE username = ?'); 
       $stm->bind_param("s",$username); 
       $stmt->execute(); 
       $row = $stm->fetch(PDO::FETCH_ASSOC); 
       if($name=='ip') 
     {      echo $row['ip']; 
     } 
       else if($name=='uid') 
      { 
        echo $row['uid]; 
      } 
} 
+1

PDOは 'bind_param'メソッドを持っていません。あなたはmysqliと物事を混合している。 –

+0

@JonStirlingどのように代用しますか?または私は何をしますか? – Comradeo

+0

@TheCodesee定義されていない変数とインデックスは致命的なエラーにリンクしていますか、それともPDOにはbind_paramメソッドがないのですか? – Comradeo

答えて

1

あなたはmysqlPDOを混合され、複数の構文エラーがあります。あなたのコードは次のようにする必要があります:

<?php 
error_reporting(E_ALL); 
$submit = $_POST['submit']; 
if($submit) { 
    $name = $_POST['somename']; 
    $username = $_POST['username']; 
    $con = new PDO('mysql:host='.$db_hostname.';dbname='.$db_database.';charset=utf8mb4', $db_termname,$db_password, array(PDO::ATTR_EMULATE_PREPARES => false,PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); 
    $stmt = $con->prepare('SELECT * FROM users WHERE username=:username'); 
    $stmt->bindParam(":username", $username); 
    $stmt->execute(); 
    $row = $stmt->fetch(PDO::FETCH_ASSOC); 
    if($name=='ip') {      
     echo $row['ip']; 
    }elseif 
     ($name=='uid') { 
     echo $row['uid]; 
     } 
} 
?> 

<form action="" method="POST"> 
    <input type="radio" name="somename" value="ip">IP<br> 
    <input type="radio" name="somename" value="uid">UID<br> 
    Enter Name: <input type="text" name="username"> 
    <br> 
    <input type="submit" name="submit"> 
</form> 

If I don't have any records for 'UID' or 'IP' how can I make a case in PHP that echoes 'No records found?

if($name=='ip') { 
    if($row['ip'] == 'ip') { 
     echo 'Result!'; 
    }else{ 
     echo 'No Result!'; 
    } 
} 

if($name=='uid') { 
    if($row['uid'] == 'uid') { 
     echo 'Result!'; 
    }else{ 
     echo 'No Result!'; 
    } 
} 
+0

Anddd it works <3ありがとうございましたc: – Comradeo

+1

@Comradeo _No problemso!_ –

+0

「UID」や「IP」のレコードがない場合はどうすればPHPで大文字と小文字を区別することができますか?レコードが見つかりませんでした '?_? – Comradeo

0

PHP ENAME代わりのsomenameの、およびユーザー名はフォーム上で欠落しています。

HTML

<form action="" method = "POST"> 
    <input type="radio" name="somename" value="ip"> IP<br> 
    <input type="radio" name="somename" value="uid"> UID<br> 
    Enter Name: <input type="text" name="username" > <br> 
    <input type="submit" name="submit"> 
    </form> 
関連する問題