我有一个脚本,我想从表中读取并列出列检查= 1的所有“任务”。我的脚本工作正常,将列出所有任务....直到我包含WHERE 。然后什么都不会被读入页面。我做错了什么?
问题是WHERE check="1"
$sql = mysql_query('SELECT tasks FROM tasks WHERE check="1"');
while($row = mysql_fetch_array($sql))
{
echo $row['tasks'];
echo "<br />";
}
表名是“tasks”,两列是“tasks”(varchar255)和“check”(int11)
答案 0 :(得分:3)
为什么没有显示?您很可能有SQL错误。但是你不能在任何地方打印它。
使用PHP显示mysql错误
//this is a bad query, this time it is intentional
$sql = mysql_query('SELECT tasks FROM tasks WHERE check="1"');
if($sql)
{
//do processing here, no error
while($row = mysql_fetch_array($sql))
{
echo $row['tasks'];
echo "<br />";
}
}
else
{
//output error, or handle it in any other way you like
echo mysql_error();
}
您的问题很可能是引用 - 更新:多个级别:
等级1
"
不正确。对字符串常量使用单引号'
,并为封闭对象名称(表格,用于反引号`
列等。)交换引号:
$sql = mysql_query("SELECT tasks FROM tasks WHERE check='1'");
逃脱报价:
$sql = mysql_query('SELECT tasks FROM tasks WHERE check=\'1\'');
仅限数字值,无论何种类型转换:
$sql = mysql_query('SELECT tasks FROM tasks WHERE check=1');
等级2
check
关键字reserved in MySQL的事实也无济于事。您可以使用它来识别对象,但需要采取预防措施:正确封装在反引号中(`
):
$sql = mysql_query('SELECT tasks FROM tasks WHERE `check`=1');
mysql_*
。不推荐使用!不安全!这里是龙!
答案 1 :(得分:0)
$sql = mysql_query("SELECT tasks FROM tasks WHERE check='1'");
while($row = mysql_fetch_array($sql))
{
echo $row['tasks'];
echo "<br />";
}
答案 2 :(得分:0)
你真的应该使用mysqli
但您可以尝试SELECT tasks FROM tasks WHERE check = 1
,
答案 3 :(得分:0)
同意,正如ppeterka所说,你根本不需要引号:
$sql = mysql_query('SELECT tasks FROM tasks WHERE check=1');
还要考虑使用引号将阻止查询在“check”列上跟踪最终索引。