2013-06-11 107 views
2

我正在对已经正在工作的mysqli查询执行准备好的语句。我在if(mysqli_num_rows($result) == 0)行遇到问题,因为它现在是一个字符串而不是mysqli_result。确定是否没有行从准备好的陈述中返回

if($nameAvailableStmt = mysqli_prepare($link, 'SELECT name FROM usetbl1 WHERE name=? LIMIT 1')) 
{ 
    mysqli_stmt_bind_param($nameAvailableStmt, "s", $_POST['dangerous']); 
    mysqli_stmt_execute($nameAvailableStmt); 
    mysqli_stmt_bind_result($nameAvailableStmt, $result); 
    mysqli_stmt_fetch($nameAvailableStmt); 
} 
if(mysqli_num_rows($result) == 0) 
+0

$结果应该是$ nameAvailableStmt – Fabio

+0

应该BD'mysqli_num_rows($ nameAvaialbleStmt)'。 –

回答

3

它应该是:

mysqli_stmt_store_result($nameAvailableStmt); 
if(mysqli_stmt_num_rows($nameAvailableStmt) == 0) 

Documentation

+0

是的,这意味着。 '$ result'将只包含您正在搜索的名称。 – Barmar

+0

它仍然给我同样的错误,我会继续尝试并清除缓存。 – Celeritas

+0

你有什么错误? – Barmar