2015-09-22 11 views
-2

Я создал таблицу с использованием php и был создан в моей базе данных (я ее видел), затем я подключил код к локальному хосту, но это также удалось, когда я пытаюсь использовать sql_query для Внесите переменные в таблицу, это дает мне «Нет выбранной базы данных»!База данных не выбрана phpmyAdmin

В таблице декларации:

require "E:/E-Commerce/OnlineStore/StoreScript(dynamic)/ConnectToMySQL.php"; 
//Won't exceed unless everything is fine with the "required" 


$sqlCommand = "CREATE TABLE products (
       id int(11) NOT NULL AUTO_INCREMENT, 
       productName varchar(255) NOT NULL, 
       productPrice varchar(16) NOT NULL, 
       productDetails text NOT NULL, 
       category varchar(16) NOT NULL, 
       subCategory varchar(16) NOT NULL, 
       dateAdded date NOT NULL, 
       PRIMARY KEY (id), 
       UNIQUE KEY productName (productName) 
       ) "; 
echo 'done '; 

Сам код:

if (isset($_POST['productName'])) { 

    $productName = mysql_real_escape_string($_POST['productName']); 
    echo 'name '; 
    $productPrice = mysql_real_escape_string($_POST['productPrice']); 
    echo 'price '; 
    $category = mysql_real_escape_string($_POST['category']); 
    echo 'category '; 
    $subCategory = mysql_real_escape_string($_POST['subCategory']); 
    echo 'subcategory '; 
    $productDetails = mysql_real_escape_string($_POST['productDetails']); 
    echo 'details '; 
    // See if that product name is an identical match to another product in the system 
    $sql = mysql_query("SELECT id FROM products WHERE productName='$productName' LIMIT 1"); 
    echo ' $productName= '.$productName; 
    echo ' got the id from the table '; 
    $productMatch = mysql_num_rows($sql); // count the output amount 
    echo ' performed matching (num rows) '; 
    if ($productMatch > 0) { 
     echo 'Sorry you tried to place a duplicate "Product Name" into the system, <a href="inventory_list.php">click here</a>'; 
     exit(); 
    } 
    // Add this product into the database now 
    include_once "E:\E-Commerce\OnlineStore\StoreScript(dynamic)\CreateProductsTable.php"; 

    $sql = mysql_query("INSERT INTO products (productName, productPrice, productDetails, category, subCategory, dateAdded) 
     VALUES('$productName','$productPrice','$productDetails','$category','$subCategory',now())",$con) or die (mysql_error()); 
    echo ' Inserted the variables in the database '; 
    $pid = mysql_insert_id(); 
    echo ' got the id '; 
    // Place image in the folder 
    $newname = "$pid.jpg"; 
    echo ' saved the image in a variable '; 
    move_uploaded_file($_FILES['FileField']['tmp_name'], "../InventoryImages/$newname"); 
    echo ' saved the image in a folder '; 
    header("location: InventoryList.php"); 
    echo ' refreshed '; 
    exit(); 
} 

Код ConnectToMySQL:

$db_host="localhost"; 
$db_username="root"; 
$db_pass=""; 
$db_name="store"; 

/*This is a function that connects the code to the online server with the host, username, and password given, or it will display the message associated with die()*/ 
$con=mysqli_connect($db_host,$db_username,$db_pass, $db_name)or die("Could not connect to mySQL"); 
echo ' connected '; 

Все вторит линии появляются до тех пор, «не выполняется соответствие (NUM строк) 'и' done 'внутри декларации таблицы, тогда он дает мне «Нет выбранной базы данных» !!

Любые идеи

+1

Вы никогда не выполняете запрос 'create'. вы просто вставляете некоторые sql в строку и говорите «сделано». и, учитывая эту ошибку, вы, вероятно, пропустили вызов mysql_select_db где-нибудь, чтобы установить свой дефолтный дБ. –

+0

вы используете 'mysqli_' для соединения с функциями' mysql_' после; Зачем? и что делать с phpmyadmin? –

+0

umm Я использовал mysql_ только, но когда он вызвал множество предупреждений, я заменил их на mysqli_, затем у меня были ошибки, поэтому я снова их изменил .. это вызовет любую ошибку? и для phpmyAdmin, хорошо через это я мог видеть таблицу и быть уверенным, что она была создана –

ответ

0

Подключение к серверу не означает conneting к базам данных, которые он содержит. Ваша проблема, скорее всего, вызвана тем фактом, что вы подключились к SQL-серверу, но поскольку сервер может содержать несколько баз данных, вы не указали, к какому запросу должен действовать запрос. Вы можете выбрать базу данных с помощью mysql_select_db (php-код) или выполнить запрос USE *database name here* на SQL-сервере (перед любым другим запросом).

Существует еще один вариант. Независимо от того, какую базу данных вы используете, добавление имени базы данных до имени таблицы (с точкой в ​​середине) выберет указанную базу данных для этого действия. Например, SELECT * FROM Alphabet.Numbers выберет из таблицы «Числа», расположенную внутри базы данных «Алфавит», независимо от выбранной ранее БД.

Надеюсь, этот ответ будет полезен.

+0

Да, это действительно работало :) спасибо но все же база данных пуста :( –

+0

В первом фрагменте кода, в котором есть запрос CREATE. Я заметил, что вы написали запрос, но никогда его не выполнили. После написания запроса используйте mysqli_query (* connection *, * query *) 'для запуска запроса на сервере. – Crystallize