Ben aşağıdaki kodu vardır:
$countQuery = "SELECT ARTICLE_NO FROM ? WHERE upper(ARTICLE_NAME) LIKE '% ? %'";
if ($numRecords = $con->prepare($countQuery)) {
$numRecords->bind_param("ss", $table, $brand);
$numRecords->execute();
$data = $con->query($countQuery) or die(print_r($con->error));
$rowcount = mysql_num_rows($data);
$rows = getRowsByArticleSearch($query, $table, $max);
$last = ceil($rowcount/$page_rows);
}
Cezası çalışması gerektiğini. Ben hata alırsınız ancak bu:
Eğer SQL sözdizimi bir hata var; yakınındaki kullanılacak doğru sözdizimi için MySQL sunucu sürümü karşılık kılavuzunu kontrol? NEREDE line 1 üst (ARTICLE_NAME) LIKE '%?%''
Ben koyarsanız
SELECT ARTICLE_NO FROM AUCTIONS WHERE upper(ARTICLE_NAME) LIKE '% o %';
Sorgu çalışıyor. $ Tablo yukarıda tanımlandığı ve sorgu GET alınan, hem de doğru geçerli değerlerdir. Neden bu başarısız olduğunu?
edit: changing to:
$countQuery = "SELECT ARTICLE_NO FROM AUCTIONS1 WHERE upper(ARTICLE_NAME) LIKE '% ? %'";
if ($numRecords = $con->prepare($countQuery)) {
$numRecords->bind_param("s", $query);
hata sonuçları:
Uyarı: mysqli_stmt :: bind_param () [mysqli-stmt.bind-param]: Değişken sayısı C hazırlanmış deyimi parametre sayısı eşleşmiyor: \ Program Files \ EasyPHP hattı üzerinde 3.0 \ www \ prog \ get_records.php 38
Senkronizasyon dışında komutları; Şimdi bu komutu çalıştıramazsınız
nereye kadar
$countQuery = "SELECT ARTICLE_NO FROM AUCTIONS1 WHERE upper(ARTICLE_NAME) LIKE ?";
if ($numRecords = $con->prepare($countQuery)) {
$numRecords->bind_param("s", "%".$query."%");
Sonuçları
Ölümcül hata: C referans parametre 2 geçmek değil miyim: hattında 38 \ Program Files \ EasyPHP 3.0 \ www \ prog \ get_records.php
ve son olarak
$countQuery = "SELECT ARTICLE_NO FROM AUCTIONS1 WHERE upper(ARTICLE_NAME) LIKE ? ";
if ($numRecords = $con->prepare($countQuery)) {
$numRecords->bind_param("s", $query);
Sadece verecektir:
Senkronizasyon dışında komutları; Şimdi bu komutu çalıştıramazsınız
Bir GİBİ TABLOLAR için bir Paramtre kullanmak imkansız mı?