Изменяя это от MySQL до MySQLi?

Я решил переключиться на MySQLi, потому что некоторые люди сказали мне, что это более безопасно. Я действительно смущен, это новые расширения. Я попытался просто добавить «i» после каждого mysql, но это дало мне ужасную нагрузку на ошибки. Я посмотрел в руководстве по PHP, почему это происходит, и есть целая куча других функций. Я, честно говоря, не могу понять, как конвертировать. Можете ли вы мне помочь?

include("dbinfo.php"); mysql_connect($c_host,$c_username,$c_password); @mysql_select_db($c_database) or die(mysql_error()); $mycon = new mysqli($c_host, $c_username, $c_password, $c_database); $query="SELECT * FROM users WHERE username='" .$_COOKIE['username']. "'"; $result=mysql_query($query) or die(mysql_error()); $num=mysql_numrows($result); $username=mysql_result($result,$i,"username"); 

Вот что вам нужно сделать:

  1. Прочтите обзор, чтобы иметь представление о различиях / преимуществах.

  2. Обратитесь к старому -> новому резюме функций на сайте PHP и обновите существующий код с помощью интерфейса mysqli.

  3. Воспользуйтесь улучшениями (например, с помощью подготовленных инструкций ), иначе это бесполезное упражнение. (По умолчанию mysqli действительно не более безопасен, чем mysql.)

Одной из причин, по которой MySQLi является более «безопасным», является то, что он предлагает другой интерфейс, который лучше во многих отношениях. Вместо того, чтобы напрямую переводить свой код, изучите новый интерфейс и используйте его. Если это ваш код, было бы нелегко переписать его с нуля, и что более важно, найдите эквиваленты (и альтернативы ) для всего, что вы делаете в коде, который вы вставили.

Для начала вы должны использовать $mysqli->prepare с параметрами вместо интерполяции переменных, как вы делаете.

http://www.php.net/manual/en/mysqli.prepare.php