我创建了mysql表,并在那里添加了一些列。
现在我想通过php检查数据库中是否存在某个列。
像这样:
if (column exist){
echo "Column in table is available."
}
else{
echo "Column doesnt exist.";
}
是否可以这样做?
非常感谢您的时间:)
答案 0 :(得分:28)
试
$result = mysql_query("SHOW COLUMNS FROM `table` LIKE 'fieldname'");
$exists = (mysql_num_rows($result))?TRUE:FALSE;
if($exists) {
// do your stuff
}
更多信息: - MySQL, Check if a column exists in a table with SQL
注意: - 不建议使用mysqli
或PDO
答案 1 :(得分:1)
假设您要查找已下达至少一个销售订单的客户,则可以按以下方式使用EXISTS运算符:
SELECT customerNumber,
customerName
FROM customers
WHERE EXISTS
(SELECT 1
FROM orders
WHERE orders.customernumber = customers.customernumber);
对于客户表中的每一行,查询都会检查订单表中的customerNumber。
如果出现在customers表中的customerNumber存在于orders表中,则子查询将返回第一匹配行。结果,EXISTS运算符返回true,并停止扫描订单表。否则,子查询将不返回任何行,并且EXISTS运算符将返回false。
要获取尚未下任何销售订单的客户,请使用NOT EXISTS运算符,如下所示:
SELECT customerNumber,
customerName
FROM customers
WHERE NOT EXISTS
(SELECT 1
FROM orders
WHERE orders.customernumber = customers.customernumber);
答案 2 :(得分:0)
您可以使用mysql_list_fields和mysql_num_fields来获取表格的列
$fields = mysql_list_fields('database_name', 'table_name');
$columns = mysql_num_fields($fields);
答案 3 :(得分:0)
在PHP中:
$fields = mysql_list_fields('database_name', 'table_name');
$columns = mysql_num_fields($fields);
for ($i = 0; $i < $columns; $i++) {$field_array[] = mysql_field_name($fields, $i);}
if (!in_array('price', $field_array))
{
$result = mysql_query('ALTER TABLE table_name ADD price VARCHAR(10)');
}
这也应该对你有帮助:
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = ‘TEST’ AND COLUMN_NAME = ‘TEST_DATE’)
BEGIN
ALTER TABLE TEST ADD TEST_DATE DATETIME
END
或者你可以这样做:
Show columns from table like 'string';
答案 4 :(得分:0)
If your database is MySQL then, you can use mysql_field_name() and mysql_fetch_field() function in php.
$res = mysql_query('select * from customer', $link);
echo mysql_field_name($res, 0); // print cust_id
echo mysql_field_name($res, 1); // print cust_name
echo mysql_field_name($res, 2); // print cust_age
答案 5 :(得分:0)
在php中运行此查询并检查行数&gt; 0: - DESC tablename'%columns_name%'
答案 6 :(得分:0)
好吧,我在这个问题上花了5个小时来仔细研究每个(有时是令人费解的)StackOverflow答案,但从未找到可行的答案,答案是如此简单,以至于您会踢自己(就像我一样):
php 7
$mysqli = new mysqli($mysql_url, $mysql_user, $mysql_password, $db_name);
$column_name = "my_column";
$table_name = "my_table";
if ($mysqli->query("SELECT $column_name FROM $table_name")){
//my_column exists in my_table
}
else{
//my_column doesn't exist in my_table
}
数据库101 ....
答案 7 :(得分:0)
这很简单,但对我有用:
1)从所需表中全选。
$qry = "SELECT * FROM table";
2)带来结果并验证该字段是否存在。
if( $result = $mysqli->query($qry) && isset($result['field_you_want']) ){
//Exists
}else{
//Doesn't exists
}
答案 8 :(得分:0)
创建函数
function CheckIfColumnExist($string) {
global $sqlConnect;
if (empty($string)) {
return false;
}
$query = mysqli_query($sqlConnect, "SELECT $string FROM `table_name`");
if (mysqli_num_rows($query) > 0)
{
$fetched_data = mysqli_fetch_assoc($query);
return true;
}
}
在 PHP 中
$string = $_POST['string'];
if(CheckIfColumnExist($string) == false){
echo "column doesn't exist!.";
}else{
echo "column is existing!.";
}