ошибка 500 - получение запроса из mysql (PHP)

158
12 марта 2018, 00:05
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
mysqli_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS,MYSQL_DB);
$result = mysqli_query(SELECT * from `smf_members` WHERE member_name=certt);
$row = mysqli_fetch_array($result);
echo $row[`id_member`];
?>    

Выдает

HTTP ERROR 500

при таком вот php коде, подскажите что делать.

Если сделать записывать mysqli_connect в &connect, а потом делать проверку на !mysqli_connect - все коннектит, а как добавляю код самого получения - сразу проблемы.

Answer 1

Если используете процедурный стиль, то нужно писать так:

$con=mysqli_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS,MYSQL_DB);
if(!$con) {
    exit(mysqli_connect_error());
}

Не забываем про кодировку соединения (иначе возможен факт неправильной работы метода mysqli_real_escape_string и это можно будет обойти):

if (!mysqli_set_charset($con,'utf8')) {
    exit("Ошибка при загрузке набора символов utf8: ".mysqli_error($con));
}

Не забываем про экранирование с помощью функции mysqli_real_escape_string

$str='certt'; // мало-ли откуда прилетело это значение.
$certt=mysqli_real_escape_string($str); // экранируем, если есть, что экранировать
$res=mysqli_query($con,"SELECT * FROM `smf_members` WHERE `member_name`='".$certt."'");
$row=mysqli_fetch_array($res);
echo $row[`id_member`];
mysqli_close($con);

А вообще, рекомендую использовать объект класса mysqli и использовать Подготавливаемые запросы:

$str = 'certt';
$mysqli=new mysqli(MYSQL_HOST,MYSQL_USER,MYSQL_PASS,MYSQL_DB);
if($error = mysqli::$connect_error) {
    exit($error);
}
if (!$mysqli->set_charset("utf8")) {
    exit("Ошибка при загрузке набора символов utf8: " . $mysqli->error);
}
if($prepare = $mysqli->prepare("SELECT * FROM `smf_members` WHERE `member_name`=?")) {
    $prepare->bind_param('s',$str);
    $prepare->execute();
    $res = $prepare->get_result();
    $res = $res->fetch_assoc();
    echo $res[`id_member`];
    $prepare->close();
}
$mysqli->close();
Answer 2

<?php 
 
ini_set('display_errors', 1); 
error_reporting(E_ALL); 
 
$con = mysqli_connect(MYSQL_HOST,MYSQL_USER,MYSQL_PASS,MYSQL_DB); 
 
$result = $con-> mysqli_query($con, SELECT * from `smf_members` WHERE member_name=`certt`); 
$row = mysqli_fetch_array($result); 
 
echo $row[`id_member`]; 
 
mysqli_close($con);

READ ALSO
Вывод выбранных строк с новой строки

Вывод выбранных строк с новой строки

Есть php кодОн работает неправильно, выводит только одно максимальное значение, а мне нужно чтобы он вывел 3 максимальных значения с новой...

155
Удаление записей с таблицы

Удаление записей с таблицы

Добрый день) Есть код, который отрисовует таблицу с БД и у него есть функция удаление записей с таблицыВсе вроде как-то работает, но при удалении...

137
Узнать на какой именно строчке кода завершилась программа

Узнать на какой именно строчке кода завершилась программа

Как можно создать отладочный модуль , явно записывающий в лог , на какой именно строчке завершилось приложение ? C++ или Qt

144