致命错误:PDO声明未定义的方法&未定义的索引?

时间:2016-05-22 10:34:43

标签: php pdo

我已经尝试了超过32个上传的解决方案,似乎没有什么是正确的 - 任何人都可以帮助我吗?我得到了未定义的索引,当我解决这些问题时,我不断收到下面列出的致命错误。不知道我做错了什么。 ?_?有人可以开导我吗?

P.S;这不是重复的致命错误,不是重复的帖子,也不是任何相关性。

错误

HTML

def rotate_matrix(m, n):
    assert len(m) is len(m[0]), 'Assertion: rotation requires square matrix'

    rotated_matrix = [[None] * len(m[0]) for _ in range(len(m))]

    def _rotate_layer(ns):
        return ns[n:] + ns[:n]

    def _nth_layer(l):
        left = [m[i][l-1] for i in range(l-1, len(m)-(l-1))] 
        bottom = m[len(m)-1-(l-1)][l:len(m)-(l-1)]  
        right = [m[i][len(m[0])-l] for i in reversed(range(l-1, len(m)-l))] 
        upper = m[l-1][len(m[0])-l-1:l-1:-1]
        return left + bottom + right + upper

    def _apply_layer(l):
        ns = _rotate_layer(_nth_layer(l))
        for i in range(l-1, len(m)-(l-1)):
            rotated_matrix[i][l-1] = ns.pop(0)
        for i in range(l, len(m)-(l-1)):
            rotated_matrix[len(m)-1-(l-1)][i] = ns.pop(0)
        for i in reversed(range(l-1, len(m)-l)):
            rotated_matrix[i][len(m[0])-l] = ns.pop(0)
        for i in reversed(range(l, len(m[0])-l)):
            rotated_matrix[l-1][i] = ns.pop(0)

    for i in range(1, len(m)/2+1):
        _apply_layer(i)

    return rotated_matrix

PHP

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

2 个答案:

答案 0 :(得分:1)

您正在将PDOmysql混合,并且存在多个语法错误。你的代码应该是这样的:

<?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>
  

如果我没有“UID&#39;或者&#39; IP&#39;我怎样才能在PHP中提出回应“没有找到记录?”的案例?

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!';
   }
}

答案 1 :(得分:0)

您在html中使用了错误的名称,someName而不是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>
相关问题