2013-03-29 3 views
0

Я запутался, как это работает ...MYSQL возвращения таблиц с PHP

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

$q ="SHOW COLUMNS FROM disp"; 
$colsq = mysql_query($q); 
$c = mysql_fetch_assoc($colsq); 
foreach($c['Field'] as $asdf){ 
    echo $asdf."<br />"; 
} 
+0

Изменить '$ colsq = mysql_query ($ д),' 'с $ colsq = mysql_query ($ д) или умереть (mysql_error());' и, возможно, вы увидите сообщение об ошибке. – Narek

ответ

1

использовать mysqli вместо mysql. попробуйте это:

$mysqli = new mysqli($db_host,$db_user,$db_password,$db_name); 
if ($mysqli->connect_errno) 
{ 
    echo "Failed to connect to MySQL:(".$mysqli->connect_errno.")" .$mysqli->connect_error; 
} 

$q ="SHOW COLUMNS FROM disp"; 
$res=$mysqli->query($q); 

while($data=$res->fetch_assoc()) 
{ 
    echo $data['Field']."<br />"; 
} 
+0

+1 для того, чтобы быть первым, кто когда-либо давал мне пример mysqli, вместо того, чтобы просто ныть о нем. Я все еще не переключаюсь. см. выше комментарий. –

5

Вы делаете это неправильно, попробуйте это.

$q = "SHOW COLUMNS FROM disp"; 
$colsq = mysql_query($q) or die(mysql_error()); 
while ($row = mysql_fetch_assoc($colsq)) { 
    echo $row['Field']."<br/>"; 
} 

Примечание:Please, don't use mysql_* functions in new code. Они больше не поддерживаются and are officially deprecated. См. red box? Узнайте о prepared statements вместо этого, и используйте PDO или MySQLi - this article поможет вам решить, какой. Если вы выберете PDO, here is a good tutorial.

+0

Спасибо капитану. Они даже не работают на PHP6, и даже когда они это делают, это будет месяцы, если не годы, прежде чем большинство людей переключится на него. Я думаю, что я в безопасности. –

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