以下是经过尝试、测试和验证的方法来检查是否存在行。
(其中一些是我自己使用的,或者过去使用过)。
编辑:我之前在语法中犯了一个错误,我使用了两次。请查阅修订版。mysqli_query()
即:
if (!mysqli_query($con,$query))
这应该简单地读作.if (!$query)
附注:两者都做同样的事情。您可以使用其中任何一个,两者都是有效的语法。'".$var."'
'$var'
以下是两个已编辑的查询:
$query = mysqli_query($con, "SELECT * FROM emails WHERE email='".$email."'");
if (!$query)
{
die('Error: ' . mysqli_error($con));
}
if(mysqli_num_rows($query) > 0){
echo "email already exists";
}else{
// do something
}
在您的情况下:
$query = mysqli_query($dbl, "SELECT * FROM `tblUser` WHERE email='".$email."'");
if (!$query)
{
die('Error: ' . mysqli_error($dbl));
}
if(mysqli_num_rows($query) > 0){
echo "email already exists";
}else{
// do something
}
您还可以将mysqli_
与预准备语句方法结合使用:
$query = "SELECT `email` FROM `tblUser` WHERE email=?";
if ($stmt = $dbl->prepare($query)){
$stmt->bind_param("s", $email);
if($stmt->execute()){
$stmt->store_result();
$email_check= "";
$stmt->bind_result($email_check);
$stmt->fetch();
if ($stmt->num_rows == 1){
echo "That Email already exists.";
exit;
}
}
}
或者带有预准备语句的 PDO 方法:
<?php
$email = $_POST['email'];
$mysql_hostname = 'xxx';
$mysql_username = 'xxx';
$mysql_password = 'xxx';
$mysql_dbname = 'xxx';
try {
$conn= new PDO("mysql:host=$mysql_hostname;dbname=$mysql_dbname", $mysql_username, $mysql_password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
exit( $e->getMessage() );
}
// assuming a named submit button
if(isset($_POST['submit']))
{
try {
$stmt = $conn->prepare('SELECT `email` FROM `tblUser` WHERE email = ?');
$stmt->bindParam(1, $_POST['email']);
$stmt->execute();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
}
}
catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
if($stmt->rowCount() > 0){
echo "The record exists!";
} else {
echo "The record is non-existant.";
}
}
?>
注意:
在处理上面使用/概述的表单和 POST 数组时,请确保 POST 数组包含值,对表单使用 POST 方法,并为输入匹配命名属性。
- 仅供参考:如果没有显式指示,则表单默认为 GET 方法。
注意:- 匹配。 没有匹配项。<input type = "text" name = "var">
$_POST['var']
$_POST['Var']
咨询:
错误检查引用:
请注意,MySQL API不会混合,以防您可能正在访问此问答,并且您正在使用连接(和查询)。mysql_
请咨询以下信息:
如果您使用的是 API,但无法选择使用它,请查阅以下 Stack 上的问答:mysql_
这些函数已弃用,并将从将来的 PHP 版本中删除。mysql_*
还可以向 (a) 行添加唯一约束。
引用: