php - 需要帮助将代码从mysql转换为mysqli

标签 php mysql database mysqli

我对php语言很陌生,只从一周开始。
我正在用php编写一个登录/注销/用户注册/重置密码演示代码。我使用mysql编写了一些代码,现在需要将其转换为mysql i。请帮忙?!!
原始代码:

function user_exists($username) {
$query= mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `username`='$username'")
return (mysql_result($query, 0) == 1) ? true : false;
}

如果输入的用户名($用户名)已经存在于数据库(LR)中,如果已经存在,返回true,则这是一个函数。如果表中的用户用户名(用户)与输入的用户名对应,则计数,如果值为1,则函数返回true(用户名已经存在),否则函数返回false。
我在把它转换成mysqli时遇到了一个问题。以下是我目前所做的:
转换代码:
$con=mysqli_connect('localhost','root','root','lr');
function user_exists($username) {
$row = mysqli_fetch_array(mysqli_query($con, "SELECT COUNT(`user_id`) FROM `users` WHERE `username`='$username'"));
return ($row[0] = 1) ? true : false;
}

我也尝试过这样做,但是由于我不知道如何将mysql_result转换为mysql i编码,所以我尝试创建一个名为“row”的变量(数组),并在其中插入已计数的用户id数。然后,我试图将存储在$row[0]中的值与1进行比较。如果存储值为1,则意味着用户存在,函数应该返回true,否则为false。这个函数似乎不能正常工作,因为我收到了一些奇怪的结果,不同于我从原始编码收到的结果。知道如何更正转换后的代码吗?!!是的。
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
我面临的另一个问题是:
原始代码:
function user_id_from_username($username){
return mysql_result(mysql_query("SELECT `user_id` FROM `users` WHERE `username`='$username'"), 0, 'user_id');
}

此函数应返回与输入的$username对应的用户id。我试图转换它,如下所示,但仍面临一些错误。
转换代码:
function user_id_from_username ($username) {
$row = mysqli_fetch_array(mysqli_query($con, "SELECT `user_id` FROM `users` WHERE `username`='$username'"));
return $row[0];
}

有什么想法吗?!!啊!

最佳答案

在函数外部定义连接,因此在函数中未定义$con。你可以的

function user_exists($username) {
     $con=mysqli_connect('localhost','root','root','lr');
     $row = mysqli_fetch_array(mysqli_query($con, "SELECT COUNT(`user_id`) FROM `users` WHERE `username`='$username'"));
     return ($row[0] == 1) ? true : false;
}


$con=mysqli_connect('localhost','root','root','lr');
function user_exists($username) {
    global $con;
    $row = mysqli_fetch_array(mysqli_query($con, "SELECT COUNT(`user_id`) FROM `users` WHERE `username`='$username'"));
    return ($row[0] == 1) ? true : false;
}

或者在调用函数时传递连接并更新函数参数。
user_exists($username, $con);
...
function user_exists($username, $con) {

您还应该研究使用准备好的语句;http://php.net/manual/en/mysqli.quickstart.prepared-statements.php
有关变量作用域的更多信息,请参见http://php.net/manual/en/language.variables.scope.php
还要注意,需要==进行比较,=设置值。

关于php - 需要帮助将代码从mysql转换为mysqli,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34337641/

相关文章:

javascript - 用户输入后刷新 PHP 变量

php - 检查空结果(PHP、PDO 和 MySQL)

php - 使用 PHP 更新 mysql 中的 GRAVATAR

php - 使用 PHP 上传、重命名、替换和存储文件

mysql - 带条件过滤查询

java - 哪种数据库和编码方案适合音频数据存储?

mysql - Rails 4 使用不同的数据库和不同的表

javascript - WooCommerce 删除我添加到产品简短描述中的自定义 jQuery 代码

php - 没有 Cookie 的 CakePHP session

php - 域名注册 API