我有以下php代码,
<?php
$subject_set = mysqli_query($db_link, 'SELECT * FROM subjects');
if(!$subject_set){
die("Database subjects query failed: ".mysql_error());
}
while ($subject=mysqli_fetch_array($subject_set)) {
echo "<li>{$subject["menu_name"]}</li>";
$page_set = mysqli_query($db_link, 'SELECT * FROM pages WHERE subject_id= {$subject["id"]}');
// $page_set = mysqli_query($db_link, 'SELECT * FROM pages WHERE subject_id='.$subject["id"]);
if(!$page_set){
die("Database pages query failed: ".mysql_error());
}
echo "<ul class=\"pages\">";
while ($page=mysqli_fetch_array($page_set)) {
echo "<li>{$page["menu_name"]}</li>";
}
echo "</ul>";
}
?>
当我运行此代码时,当我获得'page_set'值时,它会给我一个错误。在行$page_set = mysqli_query($db_link, 'SELECT * FROM pages WHERE subject_id= {$subject["id"]}');
但我使用注释行而不是上面的行代码工作正常。 mysql_error()
也没有向我显示错误。
答案 0 :(得分:3)
http://docs.php.net/language.types.string说
注意:与双引号和heredoc语法不同,特殊字符的变量和转义序列在单引号字符串中出现时不会扩展。
答案 1 :(得分:1)
由于$subject
未被视为variable
,因此在代码中将其用作字符串。使用
$page_set = mysqli_query($db_link, "SELECT * FROM pages WHERE subject_id={$subject['id']}");
答案 2 :(得分:0)
更改
$regis = new ltd_owner;
$regis->owner_name = $register['firstname'] . ' ' . $register['lastname'];
$regis->represent_company_id = $register['isRepresent'];
$regis->gender = $register['sex'];
$regis->address_id = '7598';
$regis->nationality_id = '24';
$regis->save();
到
$page_set = mysqli_query($db_link, 'SELECT * FROM pages WHERE subject_id= {$subject["id"]}');
因为PHP变量不会被处理,除非它们是双引号字符串。