How to check if a row exists in MySQL? (i.e. check if username or email exists in MySQL)(如何检查MySQL中是否有行?(即检查MySQL中是否存在用户名或电子邮件))
问题描述
我需要帮助检查数据库中是否存在行。在我的示例中,该行包含一个电子邮件地址。我正在得到结果:这是我当前使用的代码:
有没有更好的方法来检查MySQL数据库中是否存在行(在我的情况下,检查MySQL中是否存在电子邮件)?
推荐答案
以下是用于检查行是否存在的经过试验、测试和验证的方法。
(其中一些我自己使用,或过去使用过)。
编辑:我在使用mysqli_query()
两次的语法中犯了一个错误。请查阅修订版本。
即:
if (!mysqli_query($con,$query))
,本应简单显示为if (!$query)
。
- 我为忽略了那个错误而道歉。
旁注:'".$var."'
和'$var'
执行相同的操作。您可以使用其中任何一个,这两个都是有效语法。
以下是两个已编辑的查询:
在您的情况下:
您也可以使用mysqli_
with a prepared statement方法:
Or a PDO method with a prepared statement:
- 最好使用预准备语句来帮助防止SQL注入。
注意事项:
在处理上面使用/概述的表单和POST数组时,请确保POST数组包含值,并且POST方法用于表单并匹配输入的命名属性。
- 仅供参考:如果未指示显式,则窗体默认使用GET方法。
<input type = "text" name = "var">
-$_POST['var']
匹配。$_POST['Var']
不匹配。
- POST数组区分大小写。
咨询:
- http://php.net/manual/en/tutorial.forms.php
检查引用时出错:
- http://php.net/manual/en/function.error-reporting.php
- http://php.net/manual/en/mysqli.error.php
- http://php.net/manual/en/pdo.error-handling.php
mysql_
连接(和查询)。
- 从连接到查询必须使用相同的密码。
有关此问题,请参考以下内容:
- Can I mix MySQL APIs in PHP?
如果您使用的是mysql_
API,但没有选择使用它,请咨询以下关于堆栈的问答:
- MySql php: check if Row exists
mysql_*
函数已弃用,将从未来的PHP版本中删除。
- 是进入21世纪的时候了。
您还可以向(A)行添加唯一约束。
引用:
- http://dev.mysql.com/doc/refman/5.7/en/constraint-primary-key.html
- http://dev.mysql.com/doc/refman/5.7/en/alter-table.html
- How to check if a value already exists to avoid duplicates?
- How add unique key to existing table (with non uniques rows)
这篇关于如何检查MySQL中是否有行?(即检查MySQL中是否存在用户名或电子邮件)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!