Tôi đang cố gắng thực thi mã PHP của mình, mã này gọi hai truy vấn MySQL qua mysqli và gặp lỗi "Lệnh không đồng bộ hóa; bạn không thể chạy lệnh này ngay bây giờ".
Đây là mã tôi đang sử dụng
<?php
$con = mysqli_connect("localhost", "user", "password", "db");
if (!$con) {
echo "Can't connect to MySQL Server. Errorcode: %s\n". Mysqli_connect_error();
exit;
}
$con->query("SET NAMES 'utf8'");
$brand ="o";
$countQuery = "SELECT ARTICLE_NO FROM AUCTIONS WHERE upper(ARTICLE_NAME) LIKE % ? %";
if ($numRecords = $con->prepare($countQuery)) {
$numRecords->bind_param("s", $brand);
$numRecords->execute();
$data = $con->query($countQuery) or die(print_r($con->error));
$rowcount = $data->num_rows;
$rows = getRowsByArticleSearch("test", "Auctions", " ");
$last = ceil($rowcount/$page_rows);
} else {
print_r($con->error);
}
foreach ($rows as $row) {
$pk = $row['ARTICLE_NO'];
echo '<tr>' . "\n";
echo '<td><a href="#" onclick="updateByPk(\'Layer2\', \'' . $pk . '\')">'.$row['USERNAME'].'</a></td>' . "\n";
echo '<td><a href="#" onclick="updateByPk(\'Layer2\', \'' . $pk . '\')">'.$row['shortDate'].'</a></td>' . "\n";
echo '<td><a href="#" onclick="deleterec(\'Layer2\', \'' . $pk . '\')">DELETE RECORD</a></td>' . "\n";
echo '</tr>' . "\n";
}
function getRowsByArticleSearch($searchString, $table, $max) {
$con = mysqli_connect("localhost", "user", "password", "db");
$recordsQuery = "SELECT ARTICLE_NO, USERNAME, ACCESSSTARTS, ARTICLE_NAME, date_format(str_to_date(ACCESSSTARTS, '%d/%m/%Y %k:%i:%s'), '%d %m %Y' ) AS shortDate FROM AUCTIONS WHERE upper(ARTICLE_NAME) LIKE '%?%' ORDER BY str_to_date(ACCESSSTARTS, '%d/%m/%Y %k:%i:%s')" . $max;
if ($getRecords = $con->prepare($recordsQuery)) {
$getRecords->bind_param("s", $searchString);
$getRecords->execute();
$getRecords->bind_result($ARTICLE_NO, $USERNAME, $ACCESSSTARTS, $ARTICLE_NAME, $shortDate);
while ($getRecords->fetch()) {
$result = $con->query($recordsQuery);
$rows = array();
while($row = $result->fetch_assoc()) {
$rows[] = $row;
}
return $rows;
}
}
}
Tôi đã thử đọc về điều này, nhưng tôi không biết phải làm gì. Tôi đã đọc về kết quả lưu trữ và kết quả miễn phí, tuy nhiên chúng không có gì khác biệt khi sử dụng chúng. Tôi không chắc chắn chính xác lỗi này đang gây ra ở thời điểm nào và muốn biết nguyên nhân gây ra lỗi và cách khắc phục.
Đi theo các câu lệnh gỡ lỗi của tôi, vòng lặp if đầu tiên cho countQuery thậm chí không được nhập, do lỗi trong cú pháp sql của tôi gần đó '% ? %'
. Tuy nhiên, nếu tôi chỉ chọn *
thay vì cố gắng giới hạn dựa trên mệnh đề LIKE, tôi vẫn gặp lỗi lệnh không đồng bộ hóa.