无法回显mysql的结果

时间:2016-05-19 09:52:21

标签: php

我只需要产生一排。我查看了所有的样本,我不能为我的生活得到正确的信息。因此,请帮助。

以通常的方式连接到DB。这是我的查询代码。

errors : 
java.lang.NullPointerException
null
null
java.util.Timer.sched(Timer.java:399)
java.util.Timer.schedule(Timer.java:248)
rfidcsvsystem.rfidcsvtagreadings.write(rfidcsvtagreadings.java:113)
rfidtargets.AllTagsReceived.addTagReadingintoepcList(AllTagsReceived.java:456)
rfidtargets.AllTagsReceived.addTagReading(AllTagsReceived.java:221)
rfidservice.rfidservice.onTagReported(rfidservice.java:176)
com.impinj.octanesdk.ImpinjReader.onTagReportAvailableInternal(ImpinjReader.java:3540)
com.impinj.octanesdk.ImpinjReader.doMessageReceived(ImpinjReader.java:3185)
com.impinj.octanesdk.ImpinjReader.access$000(ImpinjReader.java:224)
com.impinj.octanesdk.ImpinjReader$MessageHandler.run(ImpinjReader.java:253)

我在那里得到了一个计数,结果为1。 我得到的错误是 '警告:mysqli_fetch_array()要求参数1为mysqli_result'

帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

错误

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result

几乎总是意味着查询因某种原因失败,因此$result = mysqli_query返回FALSE而不是mysql_result对象,因此任何尝试使用$result作为对象的东西都不会起作用显而易见的原因。

您的查询的问题是文本列数据必须用这样的引号括起来

$sql = "SELECT * 
        FROM table 
        WHERE `u_password` = '$pword' AND `user` = '$uname' LIMIT 1";
  

您的脚本面临SQL Injection Attack的风险   看看Little Bobby Tables偶然发生了什么   if you are escaping inputs, its not safe!

您应该使用参数化查询来避免这种情况。

$sql = "SELECT * 
        FROM table 
        WHERE `u_password` = ? AND `user` = ? LIMIT 1";
$stmt = mysqli_prepare($mdb, $sql);
// its also a good idea to check the staus of a prepare 
// and show the error if it failed, at least while testing
if ( $stmt === FALSE ) {
    echo mysqli_error($mdb);
    exit;
}
$stmt->bind_param('ss', $pword, $uname );
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();
echo $row['seeking'];

答案 1 :(得分:0)

你需要使用准备好的语句(实际上你可以通过引用你的字符串来使它工作,但是准备好的语句要好得多)。像这样:

$sql = "SELECT * FROM table WHERE `u_password` = ? AND `user` = ? LIMIT 1";
$stmt = mysqli_prepare($mdb, $sql); 
$stmt->bind_param("ss",$pword,$uname);

if ($stmt->execute()) {
    $result = $stmt->get_result();
    $row = mysqli_fetch_assoc($result);
     //Then I try to retrieve say the user name....
    echo $row['seeking'];
} else { /* something went wrong */ }