Я нахожу необходимым работать в области, в которой у меня очень мало знаний. Я должен обеспечить базу данных веб-сайта, которая использует около 20 запросов MySQL SELECT для предоставления информации посетителям сайта. Призывы все принимают форму:Получение синтаксиса подготовленных операторов правильно
$leadstory = "-1";
if (isset($_GET['leadstory'])) {
$leadstory = $_GET['leadstory'];
}
$query_News = "SELECT * FROM news WHERE lead_story = $leadstory";
$News = mysql_query($query_News, $HDAdave) or die(mysql_error());
$row_News = mysql_fetch_assoc($News);
$totalRows_News = mysql_num_rows($News);
В предыдущем посте я спросил, если эти ЗЕЬЕСТ были уязвимы для атак SQL вставки. Ответ был да, как вы, наверное, знаете. Я сделал некоторое чтение и понять, что мне нужно использовать MySQLi и что-то вроде следующего:
$statement = $db_connection->prepare("SELECT * FROM news WHERE lead_story = ?;';");
$statement->bind_param("s", $leadstory);
$statement->execute();
$row_News = $statement->fetchAll();
У меня есть несколько вопросов.
мне нужен тип линии «или умереть», если не удается установить соединение ли?
Как назначить $ totalRows_News?
мне нужно «чистых»
$leadstory
переменной сmysql_real_escape_string
ли?
Переключиться на PDO, это, безусловно, лучшая библиотека базы данных PHP – Phil
Возможный дубликат [Если вы всегда заканчиваете mysql-запросы с помощью «или умираете?»] (Http://stackoverflow.com/q/2130105/), [ Count with PDO] (http://stackoverflow.com/q/883365/), [Когда указано в подготовленных операциях pdo в PHP?] (Http: // stackoverflow. com/q/2212097 /) – outis