@Rasul_El-Sheikh

Как исправить эту ошибку?

ДОБРОГО ВРЕМЕНИ СУТОК!

Подскажите как исправить этот уорнинг:

Warning: mysql_query() expects parameter 2 to be resource, string given in C:\Users\User\Desktop\OpenServer\domains\localhost\php-2\eshop\inc\lib.inc.php on line 4
Error to go tovary!

Вот код:

<?php
function selectAllItems(){
$sql = 'SELECT id, title, author, pubyear, price FROM catalog';
if(!$result = mysql_query($link, $sql))
return false;
$items = mysql_fetch_all($result, MYSQL_ASSOC);
mysql_free_result($result);
return $items;
}
function clearInt($data){
return abs((int)$data);
}
function clearStr($data){
global $link;
return mysql_real_escape_string($link, trim(strip_tags($data)));
}
function addItemToCatalog($title, $author, $pubyear, $price) {
global $link;
$sql = "INSERT INTO catalog (title, author, pubyear, price)
VALUES (?,?,?,?)";
if (!$stmt = mysql_prepare($link, $sql))
return false;
mysql_stmt_bind_param($stmt, "ssii", $title, $author, $pubyear, $price);
mysql_stmt_execute($stmt);
mysql_stmt_close($stmt);
return true;
}
?>
  • Вопрос задан
  • 2531 просмотр
Пригласить эксперта
Ответы на вопрос 3
FanatPHP
@FanatPHP
Чебуратор тега РНР
1. научиться отличать mysql от mysqli
2. Не использовать mysqli напрямую, а взять готовый враппер, например safeMysql. Если не хочется использовать сторонние врапперы, то вместо mysqli следует использовать PDO

Пример:
function selectAllItems()
{
	global $pdo;
	$sql = 'SELECT id, title, author, pubyear, price FROM catalog';
	return $pdo->query($sql)->fetchAll();
}
function addItemToCatalog($title, $author, $pubyear, $price)
{
	global $pdo;
	$sql = "INSERT INTO catalog (title, author, pubyear, price)VALUES (?,?,?,?)";
	$pdo->prepare($sql)->execute(func_get_args());
}

Про использование mysqli прямо в коде приложения - повторюсь - надо забыть как про страшный сон.
Ответ написан
1. Выучить английский.
2. Прочитать и понять текст ошибки.
3. Исправить ошибку.
Ответ написан
saksmt
@saksmt
PHP-developer, Backend
>>> if(!$result = mysql_query($link, $sql))
                               ^^^

Поменяйте местами $link и $sql, после этого откажитесь от mysql_* и переходите на PDO
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы