2016-03-14 5 views
-1

Попытки попробовать и присоединиться к моей таблице под названием «UserCaseMessages» с моим другим столом под названием «Комментарии» с помощью этой команды точно SQL в PHP:Как выполнить внутреннее соединение SQL

$sql = " 
     SELECT UserCaseMessages.DefendantID, Comments.CommentID 
      FROM UserCaseMessages 
    INNER JOIN Comments 
      ON UserCaseMessages.DefendantID = Comments.SenderID 
     "; 

$result = $conn->query($sql); 

if ($result->num_rows > 0) // ERROR GETS THROWN ON THIS LINE { 

} 

Здесь соединительная часть для моя база данных (которая происходит до запроса):

$servername = "localhost"; 
$username = "username"; 
$password = "password"; 

// Get the username from the post 
$userUsername = $_POST['string']; 


// Create connection 
$conn = new mysqli($servername, $username, $password); 

// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

Я получаю следующее сообщение об ошибке:

PHP Notice: Trying to get property of non-object

Я не могу понять, что я делаю неправильно здесь! Все правильно написано и проверено и проверено на наличие синтаксических ошибок, и я не могу их найти, однако я новичок в этом конкретном методе. Пожалуйста помоги!

+2

Я не думаю, что ошибка PHP исходит от этой конкретной линии. Вам нужно показать код, генерирующий ошибку. –

+0

Ошибка PHP, а не ошибка SQL. – jarlh

+0

Пожалуйста, отредактируйте вопрос, добавив: вашу структуру таблицы; раздел кода вашего соединения/запроса db; точная строка кода, вызывающая ошибку. – fusion3k

ответ

3

Поскольку вы не отреагировали на мои комментарии (за 20 или более минут до моего представления), я отправляю следующий ответ.

Вы не выбрали базу данных здесь:

$servername = "localhost"; 
$username = "username"; 
$password = "password"; 

$conn = new mysqli($servername, $username, $password); 

поэтому вам нужно добавить параметр базы данных:

$servername = "localhost"; 
$username = "username"; 
$password = "password"; 
$database = "your_DB"; 

$conn = new mysqli($servername, $username, $password, $database); 

Прочитайте руководство по подключению с MySQLi API:

Проверьте наличие ошибок в запросе также:

Plus, убедитесь, что массив POST действительно содержит значение. Что-то в отношении формы HTML, которую вы не публиковали. Элемент

формы должен содержать имя атрибут соответствия:

name="string" и должна быть методом POST для <form>.

  • method="post".

FYI: <form> является эквивалентом <form method="get"> как по умолчанию используется метод GET, если POST не подразумевается.

Проверка на наличие ошибок с помощью отчетов об ошибках также:

Хотя, если форма не имеет метод POST, как я уже говорил, вы не получите сообщение об ошибке для этого, странно достаточно.


Sidenote о$userUsername.

Это неоднозначно. Если вы пытаетесь запустить запрос с этой переменной, вам нужно будет использовать предложение WHERE.

т.е .: WHERE column = '$userUsername'

+0

Приносим извинения за несоблюдение вашего комментария вовремя, только один вопрос: как вы находите имя своей базы данных –

+0

@jimmy Привет, Джимми. Если вы заходите внутрь phpmyadmin, вы увидите, где вы создали таблицы. –

+0

@jimmy Также посмотрите на эту страницу http://stackoverflow.com/a/19452867/, где показано, как это сделать с PHP. Просто замените переменные db своим. –

Смежные вопросы