Saya mengubah suai sedikit fungsi Select Exists yang saya temui pada stackoverflow, tetapi tidak kira apa yang saya cuba, fungsi saya di bawah sentiasa kembali $sqlResult
为true
. Walaupun saya hanya menyimpan dua entri dalam pangkalan data.
Adakah Select wujud masih sah?
Tiada jawapan yang dicadangkan oleh sistem stackoverflow menjawab soalan saya, sebaliknya mencadangkan menggunakan kaedah yang menyemak bilangan baris yang dikembalikan dan bukannya menggunakan wujud. (Atau pautan yang mereka berikan tidak benar-benar menjelaskan apa yang diwakili oleh hasil yang wujud.)
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; }
Gunakan: nama pengguna Index varchar(255) utf8_german2_ci
Maaf untuk soalan pemula saya. Entri untuk nama medan ditetapkan sebagai unik.
Anda perlu mendapatkan hasil pertanyaan dengan cara berikut:
Ujian dalam talian PHP mysqli
Cara lain ialah mendapatkan bilangan baris yang dikembalikan dan bukannya menggunakan
SELECT EXISTS
:PHP mysqli num_rows