如何使用WHERE子句和来自url的变量集从PHP数据库获取MySQL数据库的值

时间:2014-04-16 14:09:01

标签: php mysql

我想从MySQL数据库中获取调查问题,其中pollid = 1并回显它们。

我有以下代码:

<?php
include_once 'init/init.funcs.php';
$pollid=$_GET['pollid'];
$result = mysql_query('SELECT kysimus FROM kysimused where survey_id="1"');
$question = mysql_result($result, 0);
echo $pollid;
echo $question;

?>

它有效,我从数据库中看到第一个问题,其中survey_id = 1。但是当我写道:

<?php
include_once 'init/init.funcs.php';
$pollid=$_GET['pollid'];
$result = mysql_query('SELECT kysimus FROM kysimused where survey_id="$pollid"');
$question = mysql_result($result, 0);
echo $pollid;
echo $question;

?>

它说:

Warning: mysql_result() expects parameter 1 to be resource, boolean given in C:\xampp2\htdocs\Praks\answering.php on line 5

在上一个例子中,我从url插入了pollid,我确信变量$ pollid的值为'1'。为什么第二个代码不起作用?我还有第二个问题,我怎么能创建一个包含所有问题的数组,其中包含survey_id = $ pollid.Thanks提前。

3 个答案:

答案 0 :(得分:1)

重写您的查询行,如下所示:

$result = mysql_query("SELECT kysimus FROM kysimused where survey_id='$pollid'");

这是由于在php中处理单引号和双引号.... 你写它的方式是变量没有被替换的原因。

另请参阅:http://www.php.net/manual/en/language.types.string.php

更详细:http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing

答案 1 :(得分:1)

单引号字符串不解析变量,改变这个: $result = mysql_query('SELECT kysimus FROM kysimused where survey_id="$pollid"');

为此: $result = mysql_query('SELECT kysimus FROM kysimused where survey_id="' . $pollid . '"');

也不要忘记清理你的输入,这样的事情会更好: $result = mysql_query('SELECT kysimus FROM kysimused where survey_id="' . (int)$pollid . '"');

至少要确保它是一个int

答案 2 :(得分:0)

尝试替换此

$result = mysql_query('SELECT kysimus FROM kysimused where survey_id="$pollid"');

$result = mysql_query("SELECT kysimus FROM kysimused where survey_id='$pollid' ");