php - mysql_result 变成更高级的 mysqli 函数

标签 php mysql mysqli

我正在将我的小项目从 MYSQL 数据库升级到 MYSQLi,我只剩下 3 个函数要更新。

这是我在 MYSQL 中的函数:

function id_from_username($username) {
    $username = sanitize ($username);
    return mysql_result(mysql_query("SELECT ´id´ FROM ´members´ WHERE ´username´ = '$username'"), 0, 'id');
}

我有这段代码,我试图将其迁移到上面的函数中,但没有用:

$result = "SELECT * FROM `settings`";
 if (!$row = $db_connect->query($result)) {
     die('Oops, something went wrong during loading data! Error x010');
 }

我知道我应该公开我尝试过的代码,但问题是我真的不知道如何将 MYSQLi 迁移到那个特定的函数中,而且我知道代码是错误的如果可以这么说的话,在所有可能的方面。

最佳答案

那么你可以试试这个来迁移:
https://github.com/colshrapnel/safemysql/blob/master/safemysql.class.php

首先,在脚本中较早的地方连接:

include 'safemysql.class.php';
$opts = array(
    'user'    => 'user',
    'pass'    => 'pass',
    'db'      => 'db',
    'charset' => 'latin1',
);
$db = new SafeMySQL($opts);

然后这样写你的函数

function id_from_username($username) 
{
    global $db;
    return $db->getOne("SELECT id FROM members WHERE username = ?s", $username);
}

请注意,这不是纯 mysqli,而是基于它构建的自定义库。
最重要的区别是每个占位符都必须根据它们在查询中的角色来标记它的类型。例如。对于字符串 $username 使用了字符串占位符 (?s)。

关于php - mysql_result 变成更高级的 mysqli 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14363625/

相关文章:

php - MySqli 多个查询如何更快地处理结果

php - 如何正确显示 URL 中具有相同 GET 名称的 PHP/MySQL 的多个参数

php - 无法使用 mysqli 面向对象中的预准备语句更新数据

php - 从 View 查询创建无序列表?

javascript - Php 将日历月份添加到日期

mysql - 重组/分区数据库表

c# - 第二次运行相同的查询导致错误

javascript - 使用 Node.js 从 MySQL 获取数据并将其显示在索引页上

php - 如何在 PHP/Windows 中异步任务结束时通知用户

php - API平台: how to test file upload with ApiTestCase