Ich habe die Select Exists-Funktion, die ich bei stackoverflow gefunden habe, leicht geändert, aber egal, was ich versuche, meine Funktion unten gibt immer $sqlResult
为true
zurück. Auch wenn ich nur zwei Einträge in der Datenbank habe.
Ist „Select existiert“ noch gültig?
Keine der vom Stackoverflow-System vorgeschlagenen Antworten beantwortete meine Frage, sondern schlug stattdessen die Verwendung einer Methode vor, die die Anzahl der zurückgegebenen Zeilen überprüft, anstatt vorhanden zu verwenden. (Oder der von ihnen angegebene Link erklärt nicht wirklich, was das vorhandene Ergebnis darstellt.)
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; }
Verwendung: Benutzername Index varchar(255) utf8_german2_ci
Entschuldigung für meine Anfängerfrage. Einträge für Feldnamen sind eindeutig.
你需要以以下方式获取查询结果:
PHP mysqli在线测试
另一种方式是获取返回行数而不是使用
SELECT EXISTS
:PHP mysqli num_rows