我对php中的错误处理有疑问。我根据用户的输入查询数据库。所以基本上我正在检查是否在数据库中找不到用户输入我想输出“修改输入”但我似乎没有得到这部分因此我来到SO。有人可以帮助我了解如何检查是否找不到用户输入?以下是我的代码:
myClass
<?php
require_once('CONFIG.php');
session_start();
?>
答案 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;
}
?>
以上代码未正确优化。你应该优化你的代码。总是
试一试。