2014-04-14 6 views
0

У меня проблема:MySQL Подключение к базе данных

Я не могу открыть соединение с базой данных. Может ли кто-нибудь сказать мне, как должна быть моя база данных, если у меня есть эта команда MySQL?

$dh = new DB('table'); 
$dh->Query("SELECT * FROM cars WHERE carname LIKE '%{$term}%'"); 

Я уже пытался что-то вроде этого:

$dh = new DB("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass); 

, но он не работает.

Итак, как и где я должен разместить мой хост, dbpass и dbuser?

вот мой полный код:

if(empty($_REQUEST['term'])) 
     exit; 

$term = $_REQUEST['term']; 

$dh = new DB('table'); 
$dh->Query("SELECT * FROM cars WHERE carname LIKE '%{$term}%'"); 

$result = array(); 
$result['results'] = array(); 
$result['count'] = 0; 
while($carname = $dh->FetchArray()){ 
     $result['count']++; 
     $result['results'][] = $carname; 
} 
header('Content-type: application/json'); 
echo json_encode($result); 

я хочу, чтобы получить результат обратно в JSON.

но консоль говорит:

GET http://192.168.50.200:8888/XX/XX/source.php?term=XX 500 (Internal Server Error) 

является то, что потому что я не подключен к базе данных?

+1

Какой язык это? PHP? – Nzall

+0

LIKE '$ term $'? Echo query, если он застрял, и обратите внимание, что «% ...» всегда неэффективен, потому что он не может использовать индекс. '...%' может использовать индекс. – Strawberry

+1

Вы заставляете нас угадывать: 1) Язык программирования 2) Библиотека базы данных 2) Проблема у вас есть –

ответ

2

Если ваш язык PHP, непосредственно использовать следующее:

$connection=mysql_connect("hostname","username","password"); // Try using localhost for hostname 

$db=mysql_select_db("db_name"); 

$query=mysql_query("SELECT * FROM cars WHERE carname LIKE '%{$term}%'"); 
+0

он использует какой-то фреймворк, я бы не рекомендовал ему использовать чистые запросы mysql вроде – Touchpad

+0

, может быть, он не знает даже установить связь с базовыми запросами mysql, поэтому я предложил ему, что – Winchester

+0

в этом случае я бы сказал ему о PDO вместо устаревшего mysql_query – Touchpad

0

Если вы используете ядро ​​PHP, то вы можете установить соединение с базой данных, используя ниже code-

<?php 

mysql_connect("host_name","username","password") or die("server not connected"); 
mysql_select_db("database_name") or die("database not connected2"); 

?> 

и если вы работая в wordpress, используйте следующий код:

<?php 
require_once('/path/to/wp-load.php'); 

global $wpdb; 

$result = $wpdb->get_results("SELECT * FROM cars WHERE carname LIKE '%'".$term."'%'"); 
?> 
+0

mysql_ * устарела и не должна использоваться больше –

+0

mysql_ * является устаревшим в PHP 5.5. * Может быть, он использует 5.4. * –

+0

MySQL _ * 's предназначен замена, mysqli_ *, была вокруг начиная с php 5.0, выпущенного в 2004 году. – Eric

1

Предполагая, что вы используете PHP и PDO, это как вы должны создать соединение

$db = new PDO('mysql:host=' . $db_host . ';dbname=' . $db_name, $db_user, $db_pass); 
$sth = $db->prepare("SELECT * FROM cars WHERE carname LIKE '%:term%'"); 
$sth->bindParam(':term', $term)); 
$sth->execute(); 

Также убедитесь, что вы включили PDO в вашем файле php.ini

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