Я работаю с php и пытаюсь установить соединение с mysql с pdo. Я читал, что сначала должен иметь расширение pdo (не знаю, знаю ли я, ни как проверить его). Я изменил файл config.inc.php phpmyadmin вслух внешних подключений. Похоже, это:подключиться к mysql через php с pdo
<?php
/* Servers configuration */
$i = 0;
/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = 'localhost';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '8000';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'http';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'http'; ////I've also try with config here
$cfg['Servers'][$i]['user'] = 'xxxx';
$cfg['Servers'][$i]['password'] = 'xxxxx';
$cfg['Servers'][$i]['AllowNoPasswordRoot'] = true;
?>
мой файл PHP выглядит так:
function connect() {
global $pdo;
$pdo = new PDO("mysql:host=localhost:8000;dbname=sakila", "xxxx", "xxxxxx");
}
function get_actors_by_last_name($letter){
global $pdo;
$stmt = $pdo->prepare('
SELECT actor_id, first_name, get_actors_by_last_name
from actor
where first_name like :letter
limit 50');
$stmt->execute( array(':letter' => $letter . '%'));
return $stmt->fetchAll(PDO::FETCH_OBJ);
}
?>
страница простая форма, предполагают, чтобы принести имена актеров в зависимости от первой буквы своего имени. Каждый раз, когда вы пытаетесь заставить его работать со страницей при загрузке, не приносите мне ничего, не проблема или исключение. если изменить параметр хоста и поместить значение имени хоста, который использует мой MySQL, как это (в реальном коде реальной стоимости хоста):
$pdo = new PDO("mysql:host=mysql.value;dbname=sakila", "xxxx", "xxxxxx");
я получаю это сообщение:
Фатальная ошибка: неперехваченным исключение «PDOException» с сообщением «SQLSTATE [HY000] [1130] Хосту« xxxx »не разрешено подключаться к этому серверу MySQL« в /Users/josecarro/Desktop/jquery/ajax/dataBase/functions.php:13 Трассировка стека: # 0 /Users/josecarro/Desktop/jquery/ajax/dataBase/functions.php(13): PDO -> __ construct ('mysql: host = MacB ...', 'xxxx', 'xxxx', NULL) # 1 /Users/josecarro/Desktop/jquery/ajax/dataBase/index.php(7): connect() # 2 {main} брошен в /Users/josecarro/Desktop/jquery/ajax/dataBase/functions.php on line 13
, что заставляет меня думать, что на самом деле расширение pdo работает. Чтобы открыть сервер и использовать эту строку на терминале в каталоге, где мои файлы:
open http://localhost:8000 && python -m SimpleHTTPServer
и в тот же каталог, я начинаю с PHP
php -S localhost:8000
Я не знаю, Что проблема. Хотя я считаю, что у меня есть pdo, я попытался установить его с phpbrew (на всякий случай), установив еще одну версию php (7.0.7). Но я получаю акции, когда я пытаюсь установить расширения с
phpbrew ext install pdo-mysql
На самом деле я действительно не знаю, какого черта я делаю. Я видел в документации PHP, что вы должны компилировать так:
--with-pdo-mysql[=DIR]
Я не знаю, что делает это значит ... Я довольно потерял, как вы можете видеть. Я думаю, что его, наверное, проще, чем я думаю, но я не знаю, как это сделать, что измениться. ПОМОГИ ПОЖАЛУЙСТА!!!
Вы запутанная HTTP порт с портом базы данных –
вы говорите о файле PHP? на линии pdo? мне нужно снять порт и просто поставить «host = localhost;» ? – Chema