我稍微修改了我在stackoverflow上找到的Select Exists函数,但无论我尝试什么,我的下面的函数总是返回$sqlResult
为true
。即使我在数据库中只保留了两个条目。
Select exists还有效吗?
stackoverflow系统建议的所有答案都没有回答我的问题,而是建议使用检查返回行数的方法,而不是使用exists。(或者他们给出的链接并没有真正解释exists结果代表什么。)
function uniquedoesexist($dbHandle,$tablename,$fieldname,$value) { $sql = 'SELECT EXISTS(SELECT * FROM `' . $tablename . '` WHERE `'.$fieldname.'` = ? LIMIT 1 )'; $stmt = mysqli_prepare($dbHandle, $sql); mysqli_stmt_bind_param($stmt, 's',$value); $sqlResult = mysqli_stmt_execute($stmt); echo '$sqlResult: ' . $sqlResult.$br; return $sqlResult; }
使用:username Index varchar(255) utf8_german2_ci
对于我这个初学者的问题,我感到抱歉。 字段名的条目被设置为唯一。
你需要以以下方式获取查询结果:
PHP mysqli在线测试
另一种方式是获取返回行数而不是使用
SELECT EXISTS
:PHP mysqli num_rows