【发布时间】:2014-10-20 03:26:13
【问题描述】:
这是 PHP 中的 MySQL 模式:
$username="username";
$password="password";
$database="username-databaseName";
// Opens a connection to a mySQL server
$connection=mysql_connect (localhost, $username, $password);
if (!$connection) {
die("Not connected : " . mysql_error());
}
// Set the active mySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die ("Can\'t use db : " . mysql_error());
}
// Search the rows in the markers table
$query = some query
$result = mysql_query($query);
我尝试将大部分内容替换为 mysqli 模式,然后将查询部分粘贴在底部,如下所示:
//Database Information
$db_host = "localhost"; //Host address (most likely localhost)
$db_name = "username-databaseName"; //Name of Database
$db_user = "username"; //Name of database user
$db_pass = "password"; //Password for database user
/* Create a new mysqli object with database connection parameters */
$mysqli = new mysqli($db_host, $db_user, $db_pass, $db_name);
GLOBAL $mysqli;
if ($mysqli->connect_errno) {
echo "<p>MySQL error no {$mysqli->connect_errno} : {$mysqli->connect_error}</p>";
exit();
}
// Search the rows in the markers table
$query = some query
$result = mysql_query($query);
但是,我收到以下错误消息:
Invalid query: No database selected
我做错了什么?
【问题讨论】:
-
您的 mysqli 代码中仍有
mysql_query。你想要$mysqli->query()/mysqli_query()。理想情况下,您将希望使用准备好的语句(假设您正在传递一些查询参数)而不是直接运行查询。见php.net/manual/mysqli.quickstart.prepared-statements.php -
@Phil 有道理,谢谢。