我只需要产生一排。我查看了所有的样本,我不能为我的生活得到正确的信息。因此,请帮助。
以通常的方式连接到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'
帮助将不胜感激。
答案 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 */ }