我一直在努力制作可以返回"1"
的PHP代码。
同样,数据库信息全部删除,但由于我没有"3"
错误,因此准确无误。
例如:www.mysite.com/login.php/?test=itemindatabase
如果在数据库中找到"itemindatabase"
,那么它将返回“1”
一些注意事项:
login
是表格的名称。
test
是唯一列的名称(id
除外)
<?php
$host = "localhost";
$username = "";
$password = "";
$database = "";
$connect = new PDO("mysql:host=$host; dbname=$database", $username, $password);
$connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if(empty($_POST["test"]))
{
die("3");
}
else
{
$query = "SELECT * FROM login WHERE test = :test";
$statement = $connect->prepare($query);
$statement->execute(
array(
'test' => $_POST["test"]
)
);
$count = $statement->rowCount();
if($count > 0)
{
die("1"); //success!
}
else
{
die("0"); //fail not found
}
}
?>
我每次尝试只得到“0”意味着失败。
答案 0 :(得分:2)
件事情: -
1.您的所有数据库凭据都是空的?如果你因为安全问题而删除了它们,那么好吧。否则请在那里提供有效和正确的值。否则连接本身不会创建。
2. $_POST["test"]
需要$_GET["test"]
3. array('test'=>$_POST["test"])
需要array(':test'=>$_POST["test"])
检查此代码并尝试: -
<?php
//comment these two lines when code started working fine
error_reporting(E_ALL);
ini_set('display_errors',1);
$host = "localhost";
$username = ""; //check and provide valid value
$password = ""; //check and provide valid value
$database = ""; //this can't be empty in any case
try {
$connect = new PDO("mysql:host=$host;dbname=$database", $username, $password);
$connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if(!empty($_GET['test'])){
$statement = $connect->prepare("SELECT * FROM login WHERE test = :test");
$statement->execute(array(':test'=>$_GET["test"]));
$count = $statement->rowCount();
if($count > 0)
{
echo "record found successfully";
}
else
{
echo "no record found";
}
}else{
echo "Please provide input value";
}
}
catch(PDOException $e){
echo "Error: " . $e->getMessage();
}
$conn = null;
?>
注意: - How to fetch records