我对mysqli并不是很熟悉,而且我必须将我的脚本升级到mysqli,请你帮我解决一下吗?
以下代码:
function getConnected($host,$db_user,$db_password,$db) {
$mysqli = new mysqli($host, $db_user, $db_password, $db);
if($mysqli->connect_error)
die('Connect Error (' . mysqli_connect_errno() . ') '. mysqli_connect_error());
return $mysqli;
}
$mysqli = getConnected("localhost", "root", " ", "test");
答案 0 :(得分:0)
除了你正在混合面向对象和程序风格之外,我没有看到你的代码。 (不是我认为它会失败的原因)
只需改变一下:
die('Connect Error (' . mysqli_connect_errno() . ') '. mysqli_connect_error());
到这个
die('Connect Error (' . mysqli->connect_errno . ') '. mysqli->connect_error);
你们都在OOP中。
在此之后,您应该可以执行http://php.net/manual/en/mysqli.query.php
之类的操作$mysqli = getConnected("localhost", "root", " ", "test");
$mysqli->query('SELECT * FROM tableA');
甚至
getConnected("localhost", "root", " ", "test")->query('SELECT * FROM tableA');
或发表声明http://php.net/manual/en/mysqli.prepare.php。现在是实现预准备语句的良好实践(如果您处理用户输入,则是强制性的)。它基本上取代了转义。
if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {
/* bind parameters for markers */
$stmt->bind_param("s", $city);
/* execute query */
$stmt->execute();
/* bind result variables */
$stmt->bind_result($district);
/* fetch value */
$stmt->fetch();
printf("%s is in district %s\n", $city, $district);
/* close statement */
$stmt->close(); }
升级到mysqli有点学习曲线,但是一旦掌握了它,你会发现它与它的前身相比有多强大。