php - 为程序风格使用准备好的语句

标签 php mysql mysqli

我目前正在习惯 mysqli 并尝试转换我用 mysql 编写的代码。我正在使用过程式风格来转换代码,但是我意识到在 mysqli 中您可以使用准备好的语句,而不是使用 mysqli_real_escape_string。我试图理解这些准备好的陈述,但是我无法理解它们。如何将以下代码转换为准备好的语句?

function user_exists($email){ 
$query = mysqli_query($GLOBALS["___mysqli_ston"], "SELECT `mem_id` FROM `members` WHERE `mem_email`='$email'"); 
$query_result = mysqli_num_rows($query); 
return $query_result; 
}

最佳答案

function user_exists($email){ 
    $stmt = mysqli_prepare($GLOBALS["___mysqli_ston"], "SELECT `mem_id` FROM `members` WHERE `mem_email`=?"); 
    mysqli_stmt_bind_param($stmt,"s",$email);
    mysqli_stmt_execute($stmt);
    mysqli_stmt_store_result($stmt);
    $query_result=mysqli_stmt_num_rows($stmt);
    mysqli_stmt_free_result($stmt);
    return $query_result; 
}

说真的,使用 OOP 风格会更好......

function user_exists($email){ 
    global $___mysqli_ston;//just follow your style
    $stmt = $___mysqli_ston->prepare("SELECT `mem_id` FROM `members` WHERE `mem_email`=?");
    $stmt->bind_param("s",$email);
    $stmt->execute();
    $stmt->store_result();
    $query_result=$stmt->num_rows;
    $stmt->free_result();
    return $query_result; 
}

关于php - 为程序风格使用准备好的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15785444/

相关文章:

javascript - 如何将变量从一个 PHP 脚本拉到另一个 PHP 脚本

php - MySQL LIKE 查询不适用于带撇号的搜索记录

php - 检索类似的查询

php - 另一个小错误(可能很明显)

php - 如何在 mysqli 查询中仅比较 (Y-m-d)

php - 更新查询中的两列

php - 将 mod_rewrite 与 XAMPP 和 Windows 7 - 64 位一起使用?

php - 在每 6 秒加载一个页面的同一个 div 中使用 jQuery/Ajax 加载页面?

MySQL 事务 FOR COMMITING ON TRUE IF

python - 使用 mysql.connector for python 连接数据库时出错