警告:mysqli :: __ construct():PHP中的MYSQLI
问题描述:
我对mysqli不是很熟悉,而且我必须将脚本升级到mysqli,请你帮我分类一下吗?警告:mysqli :: __ construct():PHP中的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");
答
我没有看到任何与您的代码拨错,只是你混合面向对象和程序风格。 (不,我认为这是将是一个原因失败)
简单地改变这样的:
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的,但一旦你得到了它的窍门,你会看到它是如何强劲相比,它的前身。
你需要什么..清楚地解释问题/问题。 –