帮助,无法访问数据库。它不能指引我到我的数据库,不能使用mysql_query进行数据检索。我认为这是在我新创建的数据库中,系统无法找到?但托管网站让我无法重命名我的数据库
db_connect.php
<?php
include_once 'psl-config.php'; // As functions.php is not included
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
?>
我呼叫我的用户和数据库。 psl_config.php
<?php
define("HOST", "localhost"); // The host you want to connect to.
define("USER", "xxx"); // The database username.
define("PASSWORD", "xxx"); // The database password.
define("DATABASE", "xxx"); // The database name.
define("CAN_REGISTER", "any");
define("DEFAULT_ROLE", "member");
define("SECURE", FALSE);
?>
$name = $_SESSION ['username'];
$result = mysql_query(" select score1 from members where username = '$name'");
用户名已正确说明。 mysql查询代码第14行是bug的所在。
<?php
include_once 'includes/db_connect.php';
include_once 'includes/functions.php';
sec_session_start();
if(!isset($_SESSION['username'])){
header("Location: director.php");
}
$name = $_SESSION ['username'];
$result = mysql_query(" select score1 from members where username = '$name'");
?>
我认为在新创建的数据库中系统无法找到?但托管网站让我无法重命名我的数据库
答案 0 :(得分:2)
这一行:
$result = mysql_query(" select...
应该是
$result = $mysqli->query("select...
并将DB连接传递给查询。
将其用作object oriented style,这是您的数据库连接。
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
您目前正在混合使用MySQL API。那两个不混。
完全使用mysqli_
。不要在代码或包含文件中的任何位置包含任何mysql_
函数。所需文件也是如此。
我注意到您正在使用sec_session_start()
。这是我以前见过的功能。确保它是您所包含文件的一部分,因为我在您发布的代码中没有看到任何其他提及。
DanFromGermany
对header
将exit;
放在标题之后,否则您的代码将继续运行:
header("Location: director.php");
exit;
以下是使用parametrized方法的示例:
$name = $_SESSION ['username'];
$stmt = $mysqli->prepare("select score1 from members where username = ?");
$stmt->bind_param('s', $name);
if (!$stmt->execute()) {
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}
另一个例子:
if($statement=$mysqli->prepare("select score1 from members where username = ?")){
$name = $_SESSION ['username'];
$statement-> bind_param("s", $name);
// Execute
$statement-> execute();
// Bind results
$statement-> bind_result($name);
// Fetch value
while ( $statement-> fetch() ) {
echo $name . "<br>";
}
// Close statement
$statement-> close();
}
// Close entire connection
$mysqli-> close();
答案 1 :(得分:0)
您不能混用mysqli
和mysql
。我强烈建议使用mysqli
(使用i),因为mysql
已被弃用。此外,它与PostgreSQL兼容,自从Oracle接管Sun Microsystems以来,我们很多人都在转向它。