2014-11-19 2 views
0

Мне кажется, что этот код не работает. Он продолжает давать мне ошибку «извините: запрос не удался». Существует связь с причиной базы данных, если я ввожу неверный пароль, это приведет к ошибке «mysql connection failed». Домашнее животное таблицы уже создано и заполнено данными. Пожалуйста, мне нужна помощьMySQL-запрос с использованием PHP

<?php 
$conn = mysql_connect ("localhost", "vistor", "visitor", "test") 
    or die ("sorry: Mysql connection failed"); 
$query = "select * from pet"; 
$result = mysql_query ($query,$conn) 
    or die ("sorry: query failed"); 
while($row = mysql_fetch_array($result)) { 
    echo $row['code'], " ", $row['name']; 
    echo "<br>"; 
} 
mysql_close($conn); 
?> 

Донни дал мне код и я добавил некоторые CSS, чтобы сделать вид, как стол, но я заподозрить у меня есть кодирование неправильно, как я получаю ошибки. спасибо

<html> 
<head> 
<title> php test script - hope this works </title> 
</head> 
<body> 
<h1>php & mysql connection</h1> 
<hr> 
<?php 
$db_host = "localhost"; 
$db_username = "vistor"; 
$db_pass = "visitor"; 
$db_name = "test"; 
$db = new PDO('mysql:host='.$db_host.';dbname='.$db_name,$db_username,$db_pass); 
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); 
$query = $db->query('SELECT * FROM pet'); 
echo "<table border = '2'>" 
<tr> 
<th>id</th> 
<th>name</th> 
</tr> 
while ($row = $query->fetch()) 
{ 
echo "<tr>"; 
echo "<td>" . $row['id'] ."</td>"; 
echo "<td>" . $row['name'] . "</td>"; 
echo "<td>" . $row['price'] . "</td>"; 
echo "</tr>; 
    } 
echo "</table>"; 
?> 
</body> 
</html> 
+2

'echo mysql_errno ($ conn). ":". mysql_error ($ conn). "\ n"; 'then stop uing mysql_ * –

+3

во-первых, команды' mysql' устарели. ознакомьтесь с руководством. во-вторых, посмотрите, как отлаживать это. В руководстве рассказывается, как добавить фактическую ошибку к этой части 'или die', и проверьте, почему ваш' mysql_query' не работал. – Nanne

+0

Является ли таблица домашних животных определенной в тесте базы данных? – mlewis54

ответ

2

Вы должны научиться писать код подготовленный отчет PDO. Поскольку MySQL будет устаревшим, а его запись в MySQL может вызвать у вас проблемы с инъекциями. Вот как вы могли бы написать этот код в подготовленном заявлении PDO. Вы можете записать его в MySQLI, но единственное, что вы не могли бы использовать ваш код с любыми другими базами данных, кроме MySQL. С помощью PDO вы можете использовать свой код с любой базой данных, такой как SQL, Access и многое другое.

<?php 
    $db_host = "localhost"; 
    $db_username = "visitor"; 
    $db_pass = "visitor"; 
    $db_name = "test"; 

    $db = new PDO('mysql:host='.$db_host.';dbname='.$db_name,$db_username,$db_pass); 
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); 

    $query = $db->query('SELECT * FROM pet'); 

    while ($row = $query->fetch()) { 
    echo $row['code'], " ", $row['name']; 

    } 
    ?> 
+0

Также здесь есть хороший учебник, который поможет вам начать работу. http://prash.me/php-pdo-and-prepared-statements/ – Donny

+1

PDO с заполнителями и исключениями намного проще работать и отлаживать. Хороший пример! – tadman

+0

@ Донни, ты спас день. Это код, который я ищу весь день. Спасибо, он сработал !!! – Joseph

3

Можете ли вы предоставить полный код для подключения к базе данных и запроса?

Имея в виду, что mysql_* функции устарели в PHP, если вы хотите использовать их, вы должны быть в состоянии сделать что-то вроде этого:

<?php 
//create connection to MySQL 
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password'); 

//select database 
mysql_select_db('mysql_dbname', $link); 

//create and execute query 
$sql = 'SELECT foo FROM bar WHERE id = 42'; 
$result = mysql_query($sql, $link); 
?> 
+2

Он действительно предоставил полный код. – j08691

+0

Он был отредактирован. Сначала это не так. –

+1

@Strawberry, ваше редактирование просто неверно –

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