如何将mysql_query更改为mysqli_query

时间:2015-04-14 17:31:38

标签: mysqli

我在脚本mysqli_query中使用,但我认为语法有问题。该脚本之前确实有效,但是将所有内容从mysql_query更改为mysqli_query,数据在数据库中不再正确。

这是原始查询:

mysql_query(     "INSERT INTO download_manager (SET filename='".mysqli_real_escape_string($_GET['file'])."'),
                ON DUPLICATE KEY UPDATE downloads=downloads+1");

我用mysqli_query用这种方式改变了它:

mysqli_query($link, "INSERT INTO download_manager (SET filename='".mysqli_real_escape_string($_GET['file'])."'),
                ON DUPLICATE KEY UPDATE downloads=downloads+1");

有人能告诉我我做错了吗?

更新 我的连接看起来像这样:

$link = @mysqli_connect($db_host, $db_user, $db_pass, $db_database) or die ("Error " . mysqli_error($link));

mysql_set_charset('utf8');

1 个答案:

答案 0 :(得分:0)

确保存储在$ link中的句柄是通过调用 mysqli_connect 而不是 mysql_connect 生成的:

http://php.net/manual/en/function.mysqli-connect.php

如果失败,请检查错误:

die(mysqli_error($link))

故障排除

  • mysql mysqli PHP模块是截然不同的,您无法在模块之间混合功能。
  • 启用error reporting以确保您能够看到有用的错误消息。
  • 确保数据库凭据和连接详细信息有效。
  • mysqli_xxx 函数调用后使用 mysqli_error 来检测 mysqli 模块中的问题。
  • 谨慎使用@ token以避免隐藏有用的错误。