数据库中的PHP读取字段
我有一个读取数据库表字段的脚本。它不读取id的第一列。它读取其他字段并将它们添加到数组中。我在for循环中添加了a-1,以获得每个字段,但没有成功数据库中的PHP读取字段,php,mysql,database,arrays,Php,Mysql,Database,Arrays,我有一个读取数据库表字段的脚本。它不读取id的第一列。它读取其他字段并将它们添加到数组中。我在for循环中添加了a-1,以获得每个字段,但没有成功 $host=rtrim($_POST['host']); $user=rtrim($_POST['user']); $pass=rtrim($_POST['pass']); $dbselect=rtrim($_POST['dbselect']); $table=rtrim($_POST['table']); $classname=rtrim($_PO
$host=rtrim($_POST['host']);
$user=rtrim($_POST['user']);
$pass=rtrim($_POST['pass']);
$dbselect=rtrim($_POST['dbselect']);
$table=rtrim($_POST['table']);
$classname=rtrim($_POST['classname']);
$key_values = array();
$link = mysql_connect($host,$user,$pass);
$db_select = mysql_select_db($dbselect);
$query = mysql_query('SHOW COLUMNS FROM '.$table.'');
if (!$link) {
die('Could not connect to MySQL server: ' . mysql_error());
}
$dbname = $dbselect;
$db_selected = mysql_select_db($dbname, $link);
if (!$db_selected) {
die("Could not set $dbname: " . mysql_error());
}
$res = mysql_query('select * from '.$table.'', $link);
$num_fields = mysql_num_fields($res);
for($i=0;$i<$num_fields;$i++){
$key_values[]=mysql_field_name($res,$i);
}
echo "<pre>";
print_r($key_values);
echo "</pre>";
$host=rtrim($_POST['host']);
$user=rtrim($_POST['user']);
$pass=rtrim($_POST['pass']);
$dbselect=rtrim($_POST['dbselect']);
$table=rtrim($_POST['table']);
$classname=rtrim($_POST['classname']);
$key_values=array();
$link=mysql\u connect($host、$user、$pass);
$db\u select=mysql\u select\u db($dbselect);
$query=mysql_query('SHOW COLUMNS FROM'.$table.');
如果(!$link){
die('无法连接到MySQL服务器:'.MySQL_error());
}
$dbname=$dbselect;
$db\u selected=mysql\u select\u db($dbname,$link);
如果(!$db_选中){
die(“无法设置$dbname:”.mysql_error());
}
$res=mysql_查询('select*from'.$table'.',$link);
$num\u fields=mysql\u num\u fields($res);
对于($i=0;$i我不明白它为什么会这样做,但这应该更可靠:
$res = mysql_query('select * from '.$table.'', $link);
while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
$key_values[] = array_keys($row);
}
echo "<pre>";
print_r($key_values);
echo "</pre>";
尝试使用php本机函数(之前也需要查看此函数)
尝试此代码后($res==''):
$res=mysql\u查询('select*from'.$table'.',$link);
而($row=mysql\u fetch\u数组($res,mysql\u ASSOC)){
$key_values[]=数组_键($row);
}
回声“;
打印(关键值);
回声“;
对于mysql.*
函数,不再支持,它们已经不再维护,将来也会维护。您应该使用或更新代码,以确保将来项目的功能
因此array\u keys($result)
给出了一个列名。我想我应该坚持使用$key\u values
变量。我刚刚复制了你的代码,它工作正常,按预期显示了所有列名!我认为该错误似乎不正确。奇怪。
$res = mysql_query('select * from '.$table.'', $link);
while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
$key_values[] = array_keys($row);
}
echo "<pre>";
print_r($key_values);
echo "</pre>";
<?php
$host=rtrim($_POST['host']);
$user=rtrim($_POST['user']);
$pass=rtrim($_POST['pass']);
$dbselect=rtrim($_POST['dbselect']);
$table=rtrim($_POST['table']);
$classname=rtrim($_POST['classname']);
$db = new mysqli($host,$user,$pass,$dbselect);
if($db->connect_error)
die('Connect Error (' . mysqli_connect_errno() . ') '. mysqli_connect_error());
// NOTE real_escape_string may not work for tables untested
$result = $db->query("SELECT * FROM " . $db->real_escape_string($table));
if (!$result)
die "Error: " . $db->error;
while ($row = $result->fetch_object())
{
echo $row->id;
}
$result->close();
$db->close();