1

Тема: Проблема з формою реєстрації

Привіт програмістам! :) , в мене знов проблема,
Пише
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\OnlineTernopil\index.php on line 37
ось код

<?php require_once"./inc/header.php";?> 
<?php require_once"./inc/connect.inc.php";?> 
<?php 
$reg = @$_POST['reg']; 

$fn = "";//ім'я 
$ln = "";//прізвище 
$un = "";//імя користувача 
$em = "";//емейл 
$em2 = "";//емейл2 
$psw = "";//пароль 
$psw2 = "";//пароль2 
$d = "";//дата 
$u_check = "";//провірка імені користувача 
//реєстраційна форма 
$fn = strip_tags(@$_POST['fname']);//ім'я 
$ln = strip_tags(@$_POST['lname']);;//прізвище 
$un = strip_tags(@$_POST['username']);;//ім'я користувача 
$em = strip_tags(@$_POST['email']);;//емейл 
$em2 = strip_tags(@$_POST['email2']);;//емейл2 
$psw = strip_tags(@$_POST['password']);;//пароль 
$psw2 = strip_tags(@$_POST['password2']);;//пароль2 
$d = date('Y-m-d');//рік місяць день 

if($reg){ 
if($em == $em2){ 
//зчитування всіх імен користувачів 
$u_check = mysql_query("SELECT username FROM users WHERE username='$us'"); 
//Розподіл по стовпцям 
$check = mysql_num_rows($u_check); 
if($check == 0){ 
//Вибрати все і провірити чи все норамально 
if($fn && $ln && $em && $em2 && $psw && $psw2){ 
//Провірка правильності паролю 
if($pwd == $pwd2){ 
//Провірка довжини паролю 
if(strlen($un) > 25 || strlen($fn) > 25 || strlen($ln) > 25){ 
echo('Максимална довжина імені_користувача/прізвища/імені є 25 символів'); 
} 
else{ 
//Провірка чи пароль не має більшої довжинии як 25 сим. і меншої як 5 см. 
if(strlen($pwd) > 30 || strlen($pwd) < 5){ 
echo('Ваш пароль перевищує 30 символів, або менший як 5 символів, виправте'); 
} 
else{ 
$pwd = md5($pwd); 
$pwd2 = md5($pwd2); 
$query = mysql_query("INSERT INTO users VALUES ('','$un','$fn','$ln','$em','$pwd','$id','0')"); 
die('Вітаємо в тенопіль онлайн! теперт потрібно увійти...'); 
} 
} 
} 
} 
} 

} 
} 
?> 
<div class="container" id="container"> 
<form action="" method="post" class="wrapper"> 
<label class="h1"><h1 class="h1">Вітаємо! це перша тернопільська-соц мережа,<br> для продовження зареєструйтися</h1></label> 
<input type="text" name="fname" placeholder="Ім'я" style="width:500px;" class="form-control"><br> 
<input type="text" name="lname" placeholder="Прізвище" style="width:500px;" class="form-control"><br> 
<input type="text" name="username" placeholder="Ім'я користувача" style="width:500px;" class="form-control"><br> 
<input type="text" name="email" placeholder="Емейл адрес" style="width:500px;" class="form-control"><br> 
<input type="text" name="email2" placeholder="Емейл адрес(знову)" style="width:500px;" class="form-control"><br> 
<input type="password" name="password" placeholder="Пароль" style="width:500px;" class="form-control"><br> 
<input type="password" name="password" placeholder="Пароль(знову)" style="width:500px;" class="form-control"><br> 
<input type="submit" name="reg" value="Зареєструватися" class="btn"> 
</form> 
</div> 
<?php require_once"inc/footer.php";?>

2

Re: Проблема з формою реєстрації

username='$us
Вангую,що там повинна бути $un

Подякували: ostap34PHP1

3

Re: Проблема з формою реєстрації

Гадаю функція mysql_query повернула false. Перевірте (ехо вар_дамп) це та перевірте ваш запит на коректність.

Подякували: ostap34PHP, koala2

4

Re: Проблема з формою реєстрації

NagarD написав:

Гадаю функція mysql_query повернула false. Перевірте (ехо вар_дамп) це та перевірте ваш запит на коректність.

Помилку виправивив,але до бази не підєднується база введена правильно, ось код

<?php
$db =  mysql_connect('localhost','root','') or die('Помилка зєднання');
mysql_select_db('onlineternopil');
?>

5

Re: Проблема з формою реєстрації

1. Робіть відступи.

▼Прихований текст

замість

if(умова) {
дія();
}

робіть

if(умова) {
    дія();//зазвичай 4 пробіли, часто 2 пробіли чи 1 табуляція.
}

2. Замість коментарів біля змінних давайте їм зрозумілі імена.

▼Прихований текст

Замість

$fn = strip_tags(@$_POST['fname']);//ім'я 
...(50 рядків пропущено)...
if(... || strlen($fn) > 25 || ...){ //що в біса таке $fn?

робіть

$surname = strip_tags(@$_POST['fname']);
...(50 рядків пропущено)...
if(...|| strlen($surname) > 25 || ...){

3. Одразу рефакторизуйте код в очевидних випадках.

▼Прихований текст

Рядки 6-13 не потрібні взагалі

4. Не використовуйте застарілі функції mysql_, вживайте mysqli та PDO.

ost.bregin2014 написав:

Помилку виправивив

Як саме ви виправили помилку? Не хочете з прийдешніми поколіннями програмістів поділитися?

ost.bregin2014 написав:

але до бази не підєднується база введена правильно, ось код

Вибачте, а раніше під'єднувалося? Якщо так - то що ви змінили в коді, що перестало під'єднуватися? Якщо ні - то яким чином ви отримували в попередньому коді Warning, коли тут спрацьовував die? Якщо раніше під'єднувалося, а тепер перестало - то чому ви вирішили, що проблема саме в цьому коді, а не, скажімо, в тому, що MySQL припинив працювати?
І ще:
6. Ніколи не описуйте те, чого ваш сбійний код не робить, пишіть, що він робить замість того, що ви очікуєте.

▼Прихований текст

Замість "до бази не підєднується" пишіть "виводить 'Помилка зєднання'"

7. Намагайтеся уникати тверджень "x зроблено правильно", натомість описуйте, як ви це перевірили

▼Прихований текст

Замість "база введена правильно" пишіть "в PHPMyAdmin на localhost користувач root без пароля логіниться"

Подякували: 0xDADA11C7, ostap34PHP, Chemist-i, Monolith, 221VOLT, mike6

6

Re: Проблема з формою реєстрації

koala написав:

1. Робіть відступи.

▼Прихований текст

замість

if(умова) {
дія();
}

робіть

if(умова) {
    дія();//зазвичай 4 пробіли, часто 2 пробіли чи 1 табуляція.
}

2. Замість коментарів біля змінних давайте їм зрозумілі імена.

▼Прихований текст

Замість

$fn = strip_tags(@$_POST['fname']);//ім'я 
...(50 рядків пропущено)...
if(... || strlen($fn) > 25 || ...){ //що в біса таке $fn?

робіть

$surname = strip_tags(@$_POST['fname']);
...(50 рядків пропущено)...
if(...|| strlen($surname) > 25 || ...){

3. Одразу рефакторизуйте код в очевидних випадках.

▼Прихований текст

Рядки 6-13 не потрібні взагалі

4. Не використовуйте застарілі функції mysql_, вживайте mysqli та PDO.

ost.bregin2014 написав:

Помилку виправивив

Як саме ви виправили помилку? Не хочете з прийдешніми поколіннями програмістів поділитися?

ost.bregin2014 написав:

але до бази не підєднується база введена правильно, ось код

Вибачте, а раніше під'єднувалося? Якщо так - то що ви змінили в коді, що перестало під'єднуватися? Якщо ні - то яким чином ви отримували в попередньому коді Warning, коли тут спрацьовував die? Якщо раніше під'єднувалося, а тепер перестало - то чому ви вирішили, що проблема саме в цьому коді, а не, скажімо, в тому, що MySQL припинив працювати?
І ще:
6. Ніколи не описуйте те, чого ваш сбійний код не робить, пишіть, що він робить замість того, що ви очікуєте.

▼Прихований текст

Замість "до бази не підєднується" пишіть "виводить 'Помилка зєднання'"

7. Намагайтеся уникати тверджень "x зроблено правильно", натомість описуйте, як ви це перевірили

▼Прихований текст

Замість "база введена правильно" пишіть "в PHPMyAdmin на localhost користувач root без пароля логіниться"

Табуляцію я робив, але вставив код в елемент code на цьому форумі, весь код вирівнявся "в ліву сторону".
Дякую, за ваше коментування, буду виправлятися :) , першу помилку виправив тим що прочитав цю відповідь:

VTrim написав:

username='$us
Вангую,що там повинна бути $un

Другу помилку виправив тим що змінив з (помилка йшла на 22 рядок, але була на 20 рядку)

SELECT username FROM users WHERE username='$un' 

на

SELECT `username` FROM `users` WHERE username='$un' 

, хто помітив, я додав такі скобки ` оскільки вони парсяться в php.


Але зараз основна проблема в цьому коді, це те що дані які були введені в inpu-тах
НЕвставляються в базу даних phpMyAdmin , і ніяких помилок не пише, якщо я даю замало інформації, питайте, я недавно на форумі.  :)


Розумієте, цей код з самого початку не працював, я не розумію в чому причина, тепер помилок нема, але дані в базу даних не потрапляють :)  буду дуже вдячний, якщо хтось відкликнеться.

Подякували: 221VOLT1

7

Re: Проблема з формою реєстрації

Дивіться. Намагаєтеся вставити дані ви ось так:

$query = mysql_query("INSERT INTO users VALUES ('','$un','$fn','$ln','$em','$pwd','$id','0')"); 

При цьому значення $query ви ніяк не перевіряєте, відповідно, якщо запит закінчився невдало, ви не дізнаєтеся. Замініть його хоча б на

mysql_query("INSERT INTO users VALUES ('','$un','$fn','$ln','$em','$pwd','$id','0')") or die(mysql_error());

а ще краще - нащось на кшталт

$query_text ="INSERT INTO users VALUES ('','$un','$fn','$ln','$em','$pwd','$id','0')"; 
mysql_query($query_text) or die("Query '$query_text' leads to error ".mysql_error());

Ну а проблему з підключенням ви вирішили? Чи це була проблема не з підключенням, а з додаванням даних, а ви просто її так описали?

Подякували: ostap34PHP, 221VOLT2

8

Re: Проблема з формою реєстрації

koala написав:

Дивіться. Намагаєтеся вставити дані ви ось так:

$query = mysql_query("INSERT INTO users VALUES ('','$un','$fn','$ln','$em','$pwd','$id','0')"); 

При цьому значення $query ви ніяк не перевіряєте, відповідно, якщо запит закінчився невдало, ви не дізнаєтеся. Замініть його хоча б на

mysql_query("INSERT INTO users VALUES ('','$un','$fn','$ln','$em','$pwd','$id','0')") or die(mysql_error());

а ще краще - нащось на кшталт

$query_text ="INSERT INTO users VALUES ('','$un','$fn','$ln','$em','$pwd','$id','0')"; 
mysql_query($query_text) or die("Query '$query_text' leads to error ".mysql_error());

Ну а проблему з підключенням ви вирішили? Чи це була проблема не з підключенням, а з додаванням даних, а ви просто її так описали?

Так це є проблема з додаванням даних, ви мене просвітили [:} , і я дописав багато перевірок *YAHOO* , і перемістив в окремий файл який обробляв цю форму, зробив змінні з полів "простішими" от код змінних:

$fn = $_POST['fname'];//ім'я
$ln = $_POST['lname'];//прізвище
$un = $_POST['username'];//ім'я користувача
$em = $_POST['email'];//емейл
$em2 = $_POST['email2'];//емейл2
$psw = $_POST['password'];//пароль
$psw2 = $_POST['password2'];//пароль2
var_dump($psw2);
$d = date('Y-m-d');//рік місяць день

в результаті я помітив що ВСЯ проблема в змінній psw2(знаю, переназву красивіше, password2 :) )
вона всьго навсьго НЕ бере дані з input password 2, і получає значення Null,Це останній штрих цієї "Заплутаної історії" *DANCE* , будь-ласка допоможіть мені! :)

9

Re: Проблема з формою реєстрації

У вас немає "input password 2". Уважніше перечитайте HTML-код.

10

Re: Проблема з формою реєстрації

koala написав:

У вас немає "input password 2". Уважніше перечитайте HTML-код.

Дякую, вже додав, але те саме! :(

11

Re: Проблема з формою реєстрації

ost.bregin2014 написав:
koala написав:

У вас немає "input password 2". Уважніше перечитайте HTML-код.

Дякую, вже додав, але те саме! :(

<input type="password" name="password2" placeholder="Пароль(знову)" style="width:500px;" class="form-control"><br>

12

Re: Проблема з формою реєстрації

Увага! я вирішив свою проблему, просто в базі даних було бульше стовпців ніж я заповнив в mysql_query, дуже дякую всім допомогу! дуже вдячний!

Подякували: koala1

13

Re: Проблема з формою реєстрації

ost.bregin2014 написав:

Увага! я вирішив свою проблему, просто в базі даних було більше стовпців ніж я заповнив в mysql_query, дуже дякую всім допомогу! дуже вдячний!

Дуже!

14 Востаннє редагувалося 221VOLT (23.01.2017 01:57:29)

Re: Проблема з формою реєстрації

найголовніша проблема --
використання застарілих mysql_*
використовуйте mysqli_* натомість

приклади

▼Прихований текст

sql

CREATE DATABASE  `xmpl` ;

USE `xmpl`;

CREATE TABLE  `xmpl`.`users` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR( 255 ) NOT NULL ,
`password` VARCHAR( 255 ) NOT NULL
) ENGINE = INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;

INSERT INTO `xmpl`.`users` (`id`, `username`, `password`) VALUES (NULL, 'guest', '123456');
INSERT INTO `xmpl`.`users` (`id`, `username`, `password`) VALUES (NULL, 'user', '654321');
INSERT INTO `xmpl`.`users` (`id`, `username`, `password`) VALUES (NULL, 'admin', '456123');

simple select

<?php

$db = mysqli_connect('localhost', 'root', '', 'xmpl');


$sql = "SELECT * FROM users";
$result = mysqli_query($db, $sql); // mysql_query(///)

echo "<h2>Вивід строк з результату по одній: </h2>";
while($user = mysqli_fetch_assoc($result)) { // mysql_fetch_assoc(...)
    echo "{$user['id']}. Username: {$user['username']}, Password: {$user['password']}. <br />";
}


echo "<hr />";


$sql = "SELECT * FROM users";
$result = mysqli_query($db, $sql);
$users = mysqli_fetch_all($result, MYSQLI_ASSOC);

echo "<h2>Вибірка всіх строк в масив і вивід на екран: </h2>";
foreach ($users as $user) {
    echo "{$user['id']}. Username: {$user['username']}, Password: {$user['password']}. <br />";
}


echo "<hr />";


$sql = "SELECT * FROM users";

$stmt = mysqli_prepare($db, $sql);

mysqli_stmt_execute($stmt);

mysqli_stmt_bind_result($stmt, $id, $username, $password);

echo "<h2>Вивід строк за допомою підготовленого виразу і привязка даних до змінних: </h2>";
while (mysqli_stmt_fetch($stmt)) {
    echo "{$id}. Username: {$username}, Password: {$password}. <br />";
}

mysqli_stmt_close($stmt);

mysqli_close($db);
?>

select with params

<?
$db = mysqli_connect('localhost', 'root', '', 'xmpl');


$username = 'guest';
$password = '123456'; // "' OR '1'='1"

$sql = "SELECT * FROM users WHERE username = '{$username}' AND password = '{$password}' LIMIT 1";

$result = mysqli_query($db, $sql);

echo "<h2>Вибірка строк без захисту від SQL-injection: </h2>";
if (mysqli_num_rows($result) == 1) {
    $user = mysqli_fetch_assoc($result);
    echo "{$user['id']}. Username: {$user['username']}, Password: {$user['password']}. <br />";
}

echo "<hr />";


$username = mysqli_real_escape_string($db, 'guest');
$password = mysqli_real_escape_string($db, '123456'); // "' OR '1'='1"

$sql = "SELECT * FROM users WHERE username = '{$username}' AND password = '{$password}' LIMIT 1";

$result = mysqli_query($db, $sql);

echo "<h2>Вибірка строк з \"ручним\" захистом від SQL-injection: </h2>";
if (mysqli_num_rows($result) == 1) {
    $user = mysqli_fetch_assoc($result);
    echo "{$user['id']}. Username: {$user['username']}, Password: {$user['password']}. <br />";
}

echo "<hr />";



$sql = "SELECT * FROM users WHERE username = ? AND password = ? LIMIT 1";
$stmt = mysqli_prepare($db, $sql);
mysqli_stmt_bind_param($stmt, 'ss', $usrnm, $psswrd);

$usrnm = 'guest';
$psswrd = '123456'; // "' OR '1'='1"

mysqli_stmt_execute($stmt);

mysqli_stmt_bind_result($stmt, $id, $username, $password);

echo "<h2>Вибірка строк з \"автоматичним\" захистом від SQL-injection: </h2>";
mysqli_stmt_fetch($stmt);
echo "{$id}. Username: {$username}, Password: {$password}. <br />";

mysqli_stmt_close($stmt);

mysqli_close($db);
?>

insert

<?php

$db = mysqli_connect('localhost', 'root', '', 'xmpl');

$sql = "INSERT INTO users (username, password) VALUES (?, ?)";
$stmt = mysqli_prepare($db, $sql);

mysqli_stmt_bind_param($stmt, 'ss', $username, $password);

$username = 'author';
$password = '987456';

mysqli_stmt_execute($stmt);

echo '<p>Було задіяно строк: ' . mysqli_affected_rows($db) . "</p>";
echo '<p>ID вставленої строки: ' . mysqli_insert_id($db) . "</p>";

mysqli_stmt_close($stmt);

mysqli_close($db);
?>

delete

<?php

$db = mysqli_connect('localhost', 'root', '', 'xmpl');

$sql = "DELETE FROM users WHERE password = ?";
$stmt = mysqli_prepare($db, $sql);

mysqli_stmt_bind_param($stmt, 's', $password);

$password = '987456';

mysqli_stmt_execute($stmt);

echo '<p>Було задіяно строк: ' . mysqli_affected_rows($db) . "</p>";

mysqli_stmt_close($stmt);

mysqli_close($db);
?>

update

<?php

$db = mysqli_connect('localhost', 'root', '', 'xmpl');

$sql = "UPDATE users SET username = ? WHERE id = ?";
$stmt = mysqli_prepare($db, $sql);

mysqli_stmt_bind_param($stmt, 'si', $username, $id);

$username = 'manager';
$id = '5';

mysqli_stmt_execute($stmt);

echo '<p>Було задіяно строк: ' . mysqli_affected_rows($db) . "</p>";

mysqli_stmt_close($stmt);

mysqli_close($db);
?>

успіхів!!

p.s. на майбутнє -- завжди робіть вивід помилок при запитах до бд (в процесі розробки) --

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!mysqli_query($link, "SET a=1")) {
    printf("Errormessage: %s\n", mysqli_error($link));
}

mysqli_close($link);
?>

або

<?
$rez = mysqli_query($link, "SET a=1") or die("Errormessage:".mysqli_error($link));
?>

зекономить час/гроші і нерви))

Подякували: ostap34PHP1

15

Re: Проблема з формою реєстрації

221VOLT написав:

найголовніша проблема --
використання застарілих mysql_*
використовуйте mysqli_* натомість

приклади

▼Прихований текст

sql

CREATE DATABASE  `xmpl` ;

USE `xmpl`;

CREATE TABLE  `xmpl`.`users` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR( 255 ) NOT NULL ,
`password` VARCHAR( 255 ) NOT NULL
) ENGINE = INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;

INSERT INTO `xmpl`.`users` (`id`, `username`, `password`) VALUES (NULL, 'guest', '123456');
INSERT INTO `xmpl`.`users` (`id`, `username`, `password`) VALUES (NULL, 'user', '654321');
INSERT INTO `xmpl`.`users` (`id`, `username`, `password`) VALUES (NULL, 'admin', '456123');

simple select

<?php

$db = mysqli_connect('localhost', 'root', '', 'xmpl');


$sql = "SELECT * FROM users";
$result = mysqli_query($db, $sql); // mysql_query(///)

echo "<h2>Вивід строк з результату по одній: </h2>";
while($user = mysqli_fetch_assoc($result)) { // mysql_fetch_assoc(...)
    echo "{$user['id']}. Username: {$user['username']}, Password: {$user['password']}. <br />";
}


echo "<hr />";


$sql = "SELECT * FROM users";
$result = mysqli_query($db, $sql);
$users = mysqli_fetch_all($result, MYSQLI_ASSOC);

echo "<h2>Вибірка всіх строк в масив і вивід на екран: </h2>";
foreach ($users as $user) {
    echo "{$user['id']}. Username: {$user['username']}, Password: {$user['password']}. <br />";
}


echo "<hr />";


$sql = "SELECT * FROM users";

$stmt = mysqli_prepare($db, $sql);

mysqli_stmt_execute($stmt);

mysqli_stmt_bind_result($stmt, $id, $username, $password);

echo "<h2>Вивід строк за допомою підготовленого виразу і привязка даних до змінних: </h2>";
while (mysqli_stmt_fetch($stmt)) {
    echo "{$id}. Username: {$username}, Password: {$password}. <br />";
}

mysqli_stmt_close($stmt);

mysqli_close($db);
?>

select with params

<?
$db = mysqli_connect('localhost', 'root', '', 'xmpl');


$username = 'guest';
$password = '123456'; // "' OR '1'='1"

$sql = "SELECT * FROM users WHERE username = '{$username}' AND password = '{$password}' LIMIT 1";

$result = mysqli_query($db, $sql);

echo "<h2>Вибірка строк без захисту від SQL-injection: </h2>";
if (mysqli_num_rows($result) == 1) {
    $user = mysqli_fetch_assoc($result);
    echo "{$user['id']}. Username: {$user['username']}, Password: {$user['password']}. <br />";
}

echo "<hr />";


$username = mysqli_real_escape_string($db, 'guest');
$password = mysqli_real_escape_string($db, '123456'); // "' OR '1'='1"

$sql = "SELECT * FROM users WHERE username = '{$username}' AND password = '{$password}' LIMIT 1";

$result = mysqli_query($db, $sql);

echo "<h2>Вибірка строк з \"ручним\" захистом від SQL-injection: </h2>";
if (mysqli_num_rows($result) == 1) {
    $user = mysqli_fetch_assoc($result);
    echo "{$user['id']}. Username: {$user['username']}, Password: {$user['password']}. <br />";
}

echo "<hr />";



$sql = "SELECT * FROM users WHERE username = ? AND password = ? LIMIT 1";
$stmt = mysqli_prepare($db, $sql);
mysqli_stmt_bind_param($stmt, 'ss', $usrnm, $psswrd);

$usrnm = 'guest';
$psswrd = '123456'; // "' OR '1'='1"

mysqli_stmt_execute($stmt);

mysqli_stmt_bind_result($stmt, $id, $username, $password);

echo "<h2>Вибірка строк з \"автоматичним\" захистом від SQL-injection: </h2>";
mysqli_stmt_fetch($stmt);
echo "{$id}. Username: {$username}, Password: {$password}. <br />";

mysqli_stmt_close($stmt);

mysqli_close($db);
?>

insert

<?php

$db = mysqli_connect('localhost', 'root', '', 'xmpl');

$sql = "INSERT INTO users (username, password) VALUES (?, ?)";
$stmt = mysqli_prepare($db, $sql);

mysqli_stmt_bind_param($stmt, 'ss', $username, $password);

$username = 'author';
$password = '987456';

mysqli_stmt_execute($stmt);

echo '<p>Було задіяно строк: ' . mysqli_affected_rows($db) . "</p>";
echo '<p>ID вставленої строки: ' . mysqli_insert_id($db) . "</p>";

mysqli_stmt_close($stmt);

mysqli_close($db);
?>

delete

<?php

$db = mysqli_connect('localhost', 'root', '', 'xmpl');

$sql = "DELETE FROM users WHERE password = ?";
$stmt = mysqli_prepare($db, $sql);

mysqli_stmt_bind_param($stmt, 's', $password);

$password = '987456';

mysqli_stmt_execute($stmt);

echo '<p>Було задіяно строк: ' . mysqli_affected_rows($db) . "</p>";

mysqli_stmt_close($stmt);

mysqli_close($db);
?>

update

<?php

$db = mysqli_connect('localhost', 'root', '', 'xmpl');

$sql = "UPDATE users SET username = ? WHERE id = ?";
$stmt = mysqli_prepare($db, $sql);

mysqli_stmt_bind_param($stmt, 'si', $username, $id);

$username = 'manager';
$id = '5';

mysqli_stmt_execute($stmt);

echo '<p>Було задіяно строк: ' . mysqli_affected_rows($db) . "</p>";

mysqli_stmt_close($stmt);

mysqli_close($db);
?>

успіхів!!

p.s. на майбутнє -- завжди робіть вивід помилок при запитах до бд (в процесі розробки) --

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!mysqli_query($link, "SET a=1")) {
    printf("Errormessage: %s\n", mysqli_error($link));
}

mysqli_close($link);
?>

або

<?
$rez = mysqli_query($link, "SET a=1") or die("Errormessage:".mysqli_error($link));
?>

зекономить час/гроші і нерви))

Дякую! буду переходити на Mysqli :)

Подякували: 221VOLT1