当前位置: 首页 > 知识库问答 >
问题:

从MYSQL转换到MYSQLI[重复]

盖锐进
2023-03-14

我试图转换一个旧网站使用mysqli而不是mysql。

用这段代码打一个stumberling块

if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysqli_real_escape_string") ? mysqli_real_escape_string($theValue) : mysqli_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;   
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

我不断地犯错误

Warning:  mysqli_real_escape_string() expects exactly 2 parameters, 1 given in 

Warning:  mysqli_real_escape_string() expects exactly 2 parameters, 1 given in

如果我添加这样的连接

$theValue = function_exists("mysqli_real_escape_string") ? mysqli_real_escape_string($test,$theValue) : mysqli_escape_string($test,$theValue);

获取错误

Warning:  mysqli_real_escape_string() expects parameter 1 to be mysqli, null given



Warning:  mysqli_real_escape_string() expects parameter 1 to be mysqli, null given

有人能告诉我我做错了什么吗

非常感谢

共有2个答案

窦啸
2023-03-14

mysqli_real_escape_string也需要通过数据库连接。因此,您需要将其提供给函数,然后执行:

mysqli\u escape\u字符串($connection,$theValue)

http://php.net/manual/en/mysqli.real-escape-string.php

此外,它告诉您的$test变量为null-同样,它期待您使用myqli_connect()创建的实时数据库连接。您可能需要将其作为参数传递给函数。

吕霖
2023-03-14

收到摆脱属于这整体作用

它永远不应该和mysqli一起使用。因为mysqli有它自己的机制,必须被使用。

然而,这些机制是相当不方便的,因此,PDO更好地移向准备语句。

 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 如何将mysql更改为mysqli? (11个答案) 3年前关闭。 因此,由于不推荐使用MYSQL,并且eveyone不断告诉我进行更新,所以我认为这是我做的时间。 但是由于我不习惯mysqli_ *,对我来说似乎有些陌生。当我用Mysql编码整个网站时,这不是一个简单的编辑。 所以我想知道:如何将以下代码转换为Mysqli?只是为了给我和其他任何人一个

  • 几乎完成了我的登录脚本,只是需要一只帮助之手来找到一种替代方法: 查询:

  • 问题内容: 我当前的数据 是 我已经尝试了所有四个查询,但都没有工作。(参考) 全部抛出语法错误,如下所示: 您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以在第1行的’)AS INT FROM PRODUCT LIMIT 0,30’附近使用正确的语法 您的SQL语法有误;在第1行的“ INTEGER)FROM PRODUCT LIMIT 0,30”附近检查与您的MySQL服务器

  • 我得当前数据 是 我试过了所有的四个查询,没有一个奏效。(参考) 所有抛出的语法错误如下所示: 您的SQL语法有错误;查看与您的MySQL server版本相对应的手册,以了解在第1行使用“PRODUCT LIMIT 0,30”中的near')AS INT的正确语法 您的SQL语法有错误;查看与您的MySQL server版本相对应的手册,以了解在第1行“Integer)FROM PRODUCT

  • 我正在尝试将MySQLi查询错误转换为异常,但Couldn't-mysqli_sql_exception仅在连接DB失败时才会引发。 我使用了 和嵌入到自定义包装器类中的过程性MySQLi函数。 原代码: 问:当查询失败时不抛出警告或异常,因此我必须检查mysqli_query()是否返回false,这是正常的吗?

  • 我希望输入一个和另一个ex: 1和1000000000,现在我希望创建一个大小为1000000000的数组。然后在数组的每个索引处,存储int val,ex:。 当我尝试执行此操作时,Netbeans 会向我显示此行中的错误: “可能从long到int的有损转换”。这是我的密码:-