我决定改用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");
答案 0 :(得分:7)
以下是您需要做的事情:
阅读overview,以便了解差异/优势。
请参阅PHP网站上的old -> new function summary,并使用mysqli界面启动并运行现有代码。
利用这些改进(例如使用prepared statements),否则这是徒劳的。 (默认情况下,mysqli确实不比mysql更安全。)
答案 1 :(得分:3)
MySQLi更“安全”的原因之一是因为它提供了不同的界面,这在很多方面都更好。不要试图直接翻译代码,而是学习新界面并使用它。如果那就是你的所有代码,那么从头开始重写就不容易了,更重要的是,在你粘贴的代码中查找你所做的一切的等价物(以及替代)
对于初学者,你应该使用带有参数的$mysqli->prepare
而不是像你一样插入变量。