ОК. Так что этот код, который я запускаю, не работает вообще. Когда я запускал запрос непосредственно на сервере, он работал, однако это не работает на моей веб-странице. Я прошел через все страницы справки и не могу определить ошибку. Пожалуйста помоги.
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'];
}
}
Это то, что называется fucntions.
$userData = getUserData(getUserId($_SESSION['valid_user']))
mysql_connect($servername, $sql_username, $sql_password, $dbname)
mysql_connect()
принимает только 3 основных параметра:bool mysql_select_db (строка $ database_name [, resource $ link_identifier = NULL])
Согласно руководству:
http://php.net/manual/en/function.mysql-select-db.php
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 ([string $ server = ini_get ("mysql.default_host") [, string $ username = ini_get ("mysql.default_user") [, string $ password = ini_get ("mysql.default_password") [, bool $ new_link = false [, int $ client_flags = 0]]]]])
Открывает или повторно использует соединение с сервером MySQL.
mysqli
с подготовленными инструкциями или PDO с подготовленными инструкциями, они намного безопаснее.mysql_*
делает меня грустной пандой :-(
mysql_
будет просто воспоминанием в чьих-то старых 256 КБ оперативной памяти.
mysql_connect($servername, $sql_username, $sql_password, $dbname)
mysql_connect()
принимает только 3 основных параметра php.net/manual/en/function.mysql-connect.php . 4-й не для того, что вы думаете. Это синтаксисmysqli_()
. Вам нужно использоватьmysql_select_db()
php.net/manual/en/function.mysql-select-db.php