我不明白为什么查询不起作用,如果我尝试使用localhost工作正常但使用“mysql”,我尝试在我的网站中使用PDO而不是给出结果。我试着看看error_log我得到这样的错误
PHP Fatal error: Call to a member function fetch() on a non-object in fungsi/f_record.php on line 9
这是我的来源 f_record.php
<?php
include "../config/c_config.php";
$db = dbConn::getConnection();
$uq = strtolower($_GET["term"]);
$return = array();
$sqlac= "SELECT * FROM str_user WHERE name LIKE '$uq'";
$resac = $db->query($sqlac);
while($resac = $sqlac->fetch(PDO::FETCH_ASSOC)){
array_push($return,array('label'=>$resac['name'],'value'=>$resac['name']));
}
echo(json_encode($return));
?>
和index.php
<script>
$(function() {
$( "#txtname" ).autocomplete({
source: "f_record.php",
minLength: 1
});
});
</script>
</head>
<body>
<div>
<label for="Name">Name: </label>
<input id="txtname" class="txtname"/>
</div>
如何解决这个问题..
答案 0 :(得分:0)
仔细阅读错误消息。
在非对象
上调用成员函数fetch()您的代码中只有一个fetch()
来电。它是$sqlac->fetch(PDO::FETCH_ASSOC)
。
$sqlac
是一个字符串。您无法在fetch
上致电string
,因为它不是object
。
答案 1 :(得分:0)
首先正确创建db句柄,我不确定&#34; $ db&#34;它是如何在你的代码中创建的,你没有提到dbconn :: getconnection()的代码。我用$ dbh替换了它。
<?php
include "../config/c_config.php";
$db = dbConn::getConnection();
*$dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);*
$uq = strtolower($_GET["term"]);
$return = array();
$sqlac = $dbh->prepare("SELECT * FROM str_user WHERE name LIKE '$uq'");
$sqlac->execute();
while($resac = $sqlac->fetch(PDO::FETCH_ASSOC)){
array_push($return,array('label'=>$resac['name'],'value'=>$resac['name']));
}
echo(json_encode($return));
?>