MySQL запрос работает в PHPmyAdmin, но не в PHP-файле

0

У меня проблема с одним из моих запросов. У меня есть запрос, который отображает список контактов из базы данных для определенной учетной записи. Когда я помещаю это в phpMyAdmin, я получаю 1 результат, как ожидалось. Когда я пытаюсь выполнить тот же запрос из php, я не получаю никаких результатов.

<?php 
            $getContacts="SELECT * FROM 'accountContactDetails' where acNo='ZZZ001' ";
            $contactsResults = $conn->query($getContacts);

                if ($contactsResults->num_rows > 0) { 

                    while($contact = $contactsResults->fetch_assoc()) { 

                        echo $contact['email'];

                     } 

                 }  

                 var_dump($contactsResults); 
                 echo $getContacts; 
        ?>

Строка внизу с vardump и запросом excecuted выводит это. Bool (false) SELECT * FROM accountContactDetails где acNo = 'ZZZ001'

Когда я копирую тот же самый запрос в PHPmyAdmin, я получаю один результат. Это не связано с подключением к базе данных, поскольку это работает в файле как до, так и после этого запроса.

Может ли кто-нибудь подумать, почему это может не вернуть результат? Любая помощь с этим очень ценится!

  • 1
    ВНИМАНИЕ : При использовании mysqli вы должны использовать параметризованные запросы и bind_param для добавления пользовательских данных в ваш запрос. НЕ используйте интерполяцию или конкатенацию строк для достижения этой цели, поскольку вы создали серьезную ошибку внедрения SQL . НИКОГДА не помещайте $_POST , $_GET или любые пользовательские данные непосредственно в запрос, это может быть очень вредно, если кто-то попытается использовать вашу ошибку.
  • 1
    здесь мы идем с еще одним неясным постом.
Показать ещё 4 комментария
Теги:

2 ответа

1
Лучший ответ

Попробуйте указать вашу базу данных в предложении FROM:

SELECT * FROM myDatabase.accountContactDetails WHERE acNo='$acNo';

Это также должно быть подготовленное выражение, как они говорили выше:

$sql = 'SELECT * FROM myDatabase.accountContactDetails WHERE acNo=?';
$stmt = $conn->prepare($sql);
$stmt->bind_param('s', $acNo);
1

Попробуйте этот запрос

$getContacts="SELECT * FROM accountContactDetails where acNo = {$acNo}";
  • 0
    Оказывается, я создал таблицу в неправильной базе данных. Такая глупая ошибка (для меня это конец долгого дня) Извиняюсь за трату вашего времени.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню