Базовая таблица или представление не найдены: ошибка 1146 в Ratchet при попытке передать имя таблицы в качестве переменнPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Базовая таблица или представление не найдены: ошибка 1146 в Ratchet при попытке передать имя таблицы в качестве переменн

Сообщение Anonymous »

Я работаю над проектом, в котором одновременно открыто несколько диалогов между пользователями. И чтобы это работало, мне нужны динамические имена таблиц, потому что новая таблица будет создана при начале нового диалога.
Проблема в том, что когда мне нужно передать имена таблиц в запросе, я получаю ошибку «Базовая таблица». или представление не найдено: 1146'.
Я мог бы придумать обходной путь, который подразумевал бы отправку данных в базу данных с помощью AJAX и отправку поддельного сообщения на сервер, которое сообщало бы клиенту загрузить новый сообщение. Но это все равно, что почесать правое ухо левой ногой. Это будет работать, но это неприятно, не так ли?
В этом примере я проверяю, есть ли на самом деле разговор, и у меня есть еще одна функция, в которой я создаю ее, если она есть. 'т. Но идея в том, что если в этом примере я заменю переменную $the_table_list фактическим именем существующей таблицы, это сработает. Но если я позволю ему получить значение из переменной, это не сработает.
Есть ли другой способ структурировать код, чтобы это работало?
И, пожалуйста, не говорите «Вместо этого используйте Laravel». Мне нравится, как работает Ratchet, и я нашел больше полезных руководств по этому вопросу, чем по Laravel, а также я считаю, что это намного более интуитивно понятно.
Если говорить точнее, это странная вещь. такое бывает:
Этот не работает!!!!

Код: Выделить всё

public function check_if_there_is_convo(){

$the_table_list="asd552z";

$stmt = $this->dbConn2->prepare('SELECT COUNT(*) FROM $the_table_list WHERE Partner=:Username');
$stmt->bindParam(':Username', $this->PMTarget);
$stmt->execute();
//$result= $stmt->execute();
$count = $stmt->fetchColumn();
return $count;
}

Это работает!!!!

Код: Выделить всё

public function check_if_there_is_convo(){

$stmt = $this->dbConn2->prepare('SELECT COUNT(*) FROM asd552z WHERE Partner=:Username');
$stmt->bindParam(':Username', $this->PMTarget);
$stmt->execute();
//$result= $stmt->execute();
$count = $stmt->fetchColumn();
return $count;
}
Значит, здесь определенно проблема с передачей переменных!!!!!

Подробнее здесь: https://stackoverflow.com/questions/791 ... ss-a-table
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»