SELECT *
FROM `enzymes`
INNER JOIN `compounds`
ON compounds.compound_id = enzymes.compound_id
WHERE `ec` LIKE '1.11%'
它适用于 phpmyadmin 和 mysql 工作台。
无论我是否使用 mysql_real_escape_string 对所有内容进行反引号并在适当的位置添加数据库名称,它都不会工作。 phpmyadmin php 代码也将无法工作。
错误:警告:mysql_fetch_assoc() 期望参数 1 为资源, bool 值给出......
所有其他依赖于查询资源的函数都会出现相同的错误
更新:
case 'ec':
$dbl = mysql_connect(DB_ADDRESS, DB_USER, DB_PASSWORD);
mysql_select_db("kegg", $dbl);
//a)connection is fine
//b)tried with explicitly providing the db name vs with pre-selection
$sql = "SELECT * FROM enzymes INNER JOIN `compounds` ON compounds.compound_id=enzymes.compound_id";
print_r($sql);
$result = mysql_query( $sql, $dbl);
print mysql_error ($dbl);
while ($row = mysql_fetch_assoc($result)) {
print_r($row)
$items[ $row['name'] ] = $row['compound_id'];
}
,,,
解决方案:谢谢大家,- Brad 首先给出了关键答案。
$sql = "SELECT enzymes.*, compounds.*\n"
. "FROM enzymes\n"
. " INNER JOIN compounds\n"
. " ON compounds.compound_id = enzymes.compound_id\n"
. "WHERE enzymes.ec LIKE '1.11%' LIMIT 0, 30 ";
最近出现了一个类似的主题,建议它仅在选择特定字段时有效。当需要所有数据时,关键的解决方案是解决歧义:
enzymes.*, compounds.*
最佳答案
鉴于该错误,mysql_query 返回 bool 值 FALSE,指示错误。试试这个:
$result = mysql_query(...your query here...) or die(mysql_error());
查看到底错误是什么。
关于php - 为什么以下 SQL 命令不能与 PHP 中的 mysql_query 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7405939/