2013-05-31 4 views
1

Я начал кодировать свой собственный скрипт около часа назад, и у меня возникла ошибка, из-за которой я не уверен, как исправить. Похоже, что все правильно разбирается, кроме имя пользователя, по какой-то причине, когда я запускаю скрипт создания PHP-скрипта, он не разбирает имя пользователя из config.php, вместо этого он выполняет скрипт без имени пользователя.Сценарий не отправляет регистрационную информацию правильно

Я поставил код, хотя phpcodechecker.com/, и он ничего мне не дал, даже никаких предупреждений, он меня очень запутал, код выглядит хорошо для меня, но я довольно новичок в этом, так что я вероятно, пропустил что-то ОГРОМНОЕ, любая помощь будет очень признательна.

Почему этот код не обрабатывает имя пользователя до createtable.php, когда он пытается подключиться?

Сводные фрагменты кода; То, как форматы стека блоков кода путает ад из меня, так что я буду использовать Pastebin

config.php

createtable.php

+0

Если вы подключаетесь в config.php, почему вы повторно подключаетесь в createtable.php? – MatthewMcGovern

+0

Вы сделали очень хороший момент, удалили его, но он все равно выводит Невозможно выбрать определенную базу данных: доступ запрещен для пользователя '' @ 'localhost' в базу данных 'testdb' , который говорит мне, что он по-прежнему не может отправить имя пользователя root через в базу данных, я не понимаю, почему –

+1

Взгляните на ответ Фабио, он должен решить проблему. – MatthewMcGovern

ответ

1

Это потому, что вы смешиваете mysqli и mysql АФИ в config.php, которые в конечном итоге с нет связи вообще

mysqli_connect($db_hostname, $db_username, $db_password) 

mysql_select_db($db_database) 

Чтобы восстановить правильное соединение с базой данных с помощью mysqli (очевидно, у лучше использовать, так как mysql_* функции устарели) сделать что-то вроде этого:

$mysqli = new mysqli('localhost', 'fake_user', 'my_password', 'my_db'); 

if ($mysqli->connect_errno) { 
    die('Connect Error: ' . $mysqli->connect_errno); 
} 

Вы можете проверить documentation here

Я хотел бы добавить, что вы можете использовать соединение с config.php в любых других сценариях просто требующих его.

require('config.php'); 

так что ваш creatables.php будет выглядеть следующим образом

require("config.php"); 

$sql="CREATE TABLE quoter (
    id int NOT NULL AUTO_INCREMENT, 
    quote text NOT NULL, 
    quoteby CHAR(50) NOT NULL, 
    PIMARY KEY (id) 
    )"; 

if (mysqli_query($mysqli,$sql)) 
{ 
    echo "Table 'quoter' was created sucessfully"; 
} 
else 
{ 
    echo "Error creating table 'quoter': ".mysqli_error($mysqli); 
} 

и ваш config.php

$mysqli = new mysqli('localhost', 'fake_user', 'my_password', 'my_db'); 

if ($mysqli->connect_errno) { 
    die('Connect Error: ' . $mysqli->connect_errno); 
} 

Я хотел бы вам заметить, что $mysqli является соединение параметр которым ручку, так что вам нужно пройти этот при выполнении операций в вашей базе данных, например

mysqli_query($mysqli,$sql); 
      //^here it is 
+0

Спасибо, Фабио, ваше сообщение было очень информативным, и источник/документация были очень оценены, после прочтения этого я собираюсь перезагрузить весь файл config.php в mysqli. Есть ли какая-то серьезная проблема с файлом createtable.php, который вы может видеть, что конфликтует с mysqli в config.php? –

+0

@BenF я обновил свой ответ, чтобы вы поняли, пожалуйста, проверьте его – Fabio

+0

Еще раз спасибо Фабио, я просмотрел ссылки на все, что вы опубликовали, чтобы узнать об этом правильно и сделал несколько небольших изменений, но по сути вы его работали для меня:) Я действительно подумывал перевести все это обратно в MySQL, но с вашей помощью и ссылками MySQLi не так сложно. –

Смежные вопросы