检查数据库输入错误

时间:2015-12-12 00:40:02

标签: php mysql

我对php中的错误处理有疑问。我根据用户的输入查询数据库。所以基本上我正在检查是否在数据库中找不到用户输入我想输出“修改输入”但我似乎没有得到这部分因此我来到SO。有人可以帮助我了解如何检查是否找不到用户输入?以下是我的代码:

myClass

   

 <?php
require_once('CONFIG.php');
session_start();
 ?>

3 个答案:

答案 0 :(得分:1)

您尝试在使用->execute()之前获取结果。然后你试图在while循环中循环遍历相同的结果集。

您可以将其简化为类似的内容 -

$statement->bindParam(':cityname', $cityname, PDO::PARAM_STR);

$statement->execute();

if ($statement->rowCount() > 0){

    echo '<table>';
    echo '<tr>';
    echo '<th>City Name</th>';

    echo '</tr>';
    while ($row = $statement->fetch(PDO::FETCH_ASSOC)) {
        echo "<tr>"; 
        echo "<td>" . $row['cityname'] . "</td>";

        echo "</tr>";
    }
    echo '</table>';
}

else   { 

    echo ' modify input ';

  }

答案 1 :(得分:0)

如果您的查询正确获取值,请尝试以下步骤

分配$flag=0; 在while循环之前

在while循环中添加$flag=1;

并在循环后检查

if($flag==1){
  echo "you can show input value here as u want ".$row['cityname'];
}else{
echo ' modify input ';
}

我希望它对你有用。

答案 2 :(得分:0)

这里看到的是你的要求的编译代码..我希望这次为你工作。

在测试数据库字段中创建包含名称,类和性别的表。

 <form action="" method="post">
        Studnet name : <input type="text" name="name" value="<?php if (isset($_POST['name'])) echo $_POST['name']; ?>">
        <input type="submit" name="submit" value="search">
    </form>

<?php
if (isset($_REQUEST['submit'])) {
    // connection with databas
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "test";
    try {
        $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
        // set the PDO error mode to exception
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        echo "Connected successfully.<br><br>";
    } catch (PDOException $e) {
        echo "Connection failed: " . $e->getMessage();
    }

    if (!empty($_POST['name'])) {
        $keyword = 'ap';
        $search_sql = "SELECT * FROM `stud` WHERE `name` LIKE :name;";
        $q = $conn->prepare($search_sql);
        $q->bindValue(':name', '%' . $_REQUEST['name'] . '%');
        $q->execute();
        $flag = 0;
        while ($r = $q->fetch(PDO::FETCH_ASSOC)) {
            $flag = 1;
            $class = $r['class'];
            $gender = $r['gender'];
        }
        if ($flag == 1) {
             echo "Result :<br> Name - ".$_REQUEST['name'].",<br> Class - ".$class."<br> Gender - ".$gender;
        } else {
            echo "Record not found, Please modify Input";
        }
    } else {
        echo "Please Enter name";
    }
    //close connection
    $conn = null;
}
?>

以上代码未正确优化。你应该优化你的代码。总是

试一试。