我想从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提前。
答案 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' ");