Ok. 所以我正在运行的这段代码根本不起作用。 当我直接在服务器上运行查询时,它起作用了,但这在我的网页上不起作用。 我已经浏览了所有帮助页面,但无法查明错误。 请帮忙。
function getUserData($id) {
$servername = "******************";
$dbname = "***********";
$sql_username = "************";
$sql_password = "****************";
$conn = mysql_connect($servername, $sql_username, $sql_password, $dbname);
$userData = array();
$sql = mysql_query("SELECT * FROM users WHERE user_id ='".$id."'");
while ($row = mysql_fetch_assoc($sql)) {
$userData['id'] = $row['id'];
$userData['user_name'] = $row['username'];
$userData['password'] = $row['password'];
$userData['aboutme'] = $row['aboutme'];
$userData['first_name'] = $row['fname'];
$userData['last_name'] = $row['lname'];
$userData['gender'] = $row['gender'];
$userData['user_email'] = $row['email'];
$userData['country'] = $row['country'];
$userData['language'] = $row['language'];
$userData['send_emails'] = $row['sendemails'];
$userData['date'] = $row['date'];
}
return $userData;
}
function getUserId($username) {
$servername = "*********************";
$dbname = "*********";
$sql_username = "***********";
$sql_password = "***********";
$conn = mysql_connect($servername, $sql_username, $sql_password, $dbname);
$sql = mysql_query("SELECT user_id FROM users WHERE user_name = '".$username."'");
while ($row2 = mysql_fetch_assoc($sql)) {
return $row2['user_id'];
}
}
这就是所谓的功能。
$userData = getUserData(getUserId($_SESSION['valid_user']))
mysql_connect($servername, $sql_username, $sql_password, $dbname)
-
mysql_connect()
只接受 3 个基本参数:
bool mysql_select_db ( 字符串 $database_name [, 资源 $link_identifier = NULL ] )
根据手册:
http://php.net/manual/en/function.mysql-select-db.php
- 第 4 个参数不适用于您的想法。这是
mysqli_()
语法。
您需要使用mysql_select_db()
http://php.net/manual/en/function.mysql-select-db.php
从手册中还:
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Not connected : ' . mysql_error());
}
// make foo the current db
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
die ('Can''t use foo : ' . mysql_error());
}
从mysql_connect()
:
资源mysql_connect ([ 字符串 $server = ini_get("mysql.default_host") [, 字符串 $username = ini_get("mysql.default_user") [,字符串 $password = ini_get("mysql.default_password") [, bool $new_link = false [, int $client_flags = 0 ]]]]] )
打开或重用与 MySQL 服务器的连接。
- 我还需要声明您当前的代码对SQL注入开放。将
mysqli
与预准备语句一起使用,或将 PDO 与预准备语句一起使用,它们要安全得多。