Top.Mail.Ru
Ответы

Помогите исправить пожалста php

Здравствуйте) есть код- вроде все работает как нужно но показывает ошибка PHP Warning: mysql_query() expects parameter 1 to be string ругается на это if(!mysql_query($sql)) помогите исправить пожалста

// соединяемся с сервером базы данных
$connect_to_db = mysql_connect($db_host, $db_username, $db_password)
or die("Could not connect: " . mysql_error());
mysql_query('SET NAMES utf8');
// подключаемся к базе данных
mysql_select_db($db_name, $connect_to_db)
or die("Could not select DB: " . mysql_error());

$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$select1 = $_POST['select1'];
$select2 = $_POST['select2'];
$select3 = $_POST['select3'];
$auto = $_POST['auto'];
$select4 = $_POST['select4'];
$phone = $_POST['phone'];
$num = $_POST['num'];

$sql = 'INSERT INTO rega(first_name, last_name, select1, select2, select3, auto, select4, phone, num)
VALUES("'.$first_name.'", "'.$last_name.'", "'.$select1.'", "'.$select2.'", "'.$select3.'", "'.$auto.'", "'.$select4.'", "'.$phone.'", "'.$num.'")';
// проверка
$sql = mysql_query("SELECT `id` FROM `rega` WHERE `num` = '".mysql_real_escape_string($num)."'");
if(mysql_num_rows($sql)>0);

if(!mysql_query($sql))
{echo 'Ошибка при добавлении данных! ';}
else
{echo 'Данные успешно добавлены! ';}
mysql_close($connect_to_db);
?>

По дате
По рейтингу
Аватар пользователя
Мастер
11лет

1)Читайте про фильтрацию входящих данных
2)Вот эта часть меня смущает $sql = 'INSERT INTO rega(first_name, last_name, select1, select2, select3, auto, select4, phone, num)
VALUES("'.$first_name.'", "'.$last_name.'", "'.$select1.'", "'.$select2.'", "'.$select3.'", "'.$auto.'", "'.$select4.'", "'.$phone.'", "'.$num.'")'; Если поля не UNIQUE то добавиться еще одна запись.. для этого либо вам нужно полям задать UNIQUE чтобы они не дублировались либо запрос поставить в блок else..то есть как то так

$query = mysql_query("SELECT * FROM `table`");
if(mysql_num_rows($query) > 0) echo 'Error';
else {

$sql = 'INSERT INTO rega(first_name, last_name, select1, select2, select3, auto, select4, phone, num)
VALUES("'.$first_name.'", "'.$last_name.'", "'.$select1.'", "'.$select2.'", "'.$select3.'", "'.$auto.'", "'.$select4.'", "'.$phone.'", "'.$num.'")';
mysql_query($sql);
echo 'SUCCESS';

}
Ах да.. еще вместо устаревшего mysql используйте расширение mysqli или PDO..они быстрее и безопаснее.. на счёт ошибки.. ругается интерпратор на то, что функция mysql_query ожидает строку а задано не знаю что.. чтобы исправить нужно заново писать.. можете скинуть мне файлик я попробую исправить



Видео по теме