将其从MySQL更改为MySQLi?

时间:2011-01-09 17:18:19

标签: php mysql mysqli

我决定改用MySQLi,因为有些人告诉我它更安全。我真正感到困惑的是新的扩展。我尝试在每个mysql之后添加'i',但这给了我一堆错误。我在PHP手册中查找了为什么会发生这种情况并且还有很多其他功能..我老实说无法弄清楚如何转换。你能帮我吗?

include("dbinfo.php");
mysql_connect($c_host,$c_username,$c_password);
@mysql_select_db($c_database) or die(mysql_error());
$mycon = new mysqli($c_host, $c_username, $c_password, $c_database);
$query="SELECT * FROM users WHERE username='" .$_COOKIE['username']. "'";
$result=mysql_query($query) or die(mysql_error());
$num=mysql_numrows($result);
$username=mysql_result($result,$i,"username");

2 个答案:

答案 0 :(得分:7)

以下是您需要做的事情:

  1. 阅读overview,以便了解差异/优势。

  2. 请参阅PHP网站上的old -> new function summary,并使用mysqli界面启动并运行现有代码。

  3. 利用这些改进(例如使用prepared statements),否则这是徒劳的。 (默认情况下,mysqli确实不比mysql更安全。)

答案 1 :(得分:3)

MySQLi更“安全”的原因之一是因为它提供了不同的界面,这在很多方面都更好。不要试图直接翻译代码,而是学习新界面并使用它。如果那就是你的所有代码,那么从头开始重写就不容易了,更重要的是,在你粘贴的代码中查找你所做的一切的等价物(以及替代

对于初学者,你应该使用带有参数的$mysqli->prepare而不是像你一样插入变量。

http://www.php.net/manual/en/mysqli.prepare.php