mysql — временная таблица с использованием PHP не работает

Я пытаюсь создать временную таблицу в моей локальной базе данных с помощью php. Это не создает заголовок, и никакая ошибка не дана. Я проверяю, используя DESC temp, это не показывает структуру таблицы. Это мой код:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$hostname = "localhost";
$username = "root";
$password = "";
$database = "autosearch";

//connection to the database
$dbhandle = mysqli_connect($hostname, $username, $password);
$db = mysqli_select_db($dbhandle, $database) or die("Unable to connect to MySQL");
//echo "Connected to MySQL<br>";

$query_createTemporaryTable = "CREATE TEMPORARY TABLE #temp(temp_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
ArtistName VARCHAR(20), NAMEOfTheDVD VARCHAR(30)";

$result_createtemptable = mysqli_query($dbhandle, $query_createTemporaryTable);

$query_insertintotable = "INSERT INTO temp (ArtistName, NAMEOfTheDVD)
VALUES ('R', 'SHAWooSHANK')";

$result_insertintotable = mysqli_query($dbhandle, $query_insertintotable) or die(mysqli_error($dbhandle));

$query_selecttemptable = "SELECT ArtistName,NAMEOfTheDVD FROM temp";

$result_selecttemptable = mysqli_query( $query_selecttemptable,$dbhandle) or die(mysqli_error());



while($row_selecttemptable = mysqli_fetch_array($result_selecttemptable)){
echo $row_selecttemptable;

}
$delete_temptable = "DROP TABLE 'temp'";
$result_temptable = mysqli_query($delete_temptable, $dbhandle) or die(mysqli_error());
mysqli_close();

?>

0

Решение

Здесь есть несколько ошибок

Сначала у вас есть точка, а не запятая в качестве разделителя после temp_id, который не будет компилироваться. Также у вас есть 3 столбца в списке столбцов и только 2 в списке данных. Вам на самом деле не нужно передавать temp_id так как это столбец автоинкремента. Так что измените эту строку на

$query_insertintotable = "INSERT INTO temp (ArtistName, NAMEOfTheDVD)
VALUES ('R', 'SHAWooSHANK')";
1

Другие решения

Вот ваш код с исправленными ошибками и переименованной во временную таблицу temp_artist,

Это все мелкие ошибки. Позвольте мне предложить вам самый высокий уровень проверки ошибок, установленный в вашей среде разработки PHP.

Я также проверяю, что весь код SQL работает из IDE, прежде чем использовать его в PHP.

Ошибки:

  • не закрывать «)» на create table statement
  • $ dbHandle должен быть первым параметром на mysqli_query заявление.
  • имя таблицы в drop Заявление должно иметь кавычки, а не кавычки.
  • Оператор ‘echo’ не отображает array без конвертации.

Код:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

$hostname = "localhost";
$username = "test";
$password = "test";
$database = "testmysql";

//connection to the database
$dbhandle = mysqli_connect($hostname, $username, $password);
$db = mysqli_select_db($dbhandle, $database) or die("Unable to connect to MySQL");
//echo "Connected to MySQL<br>";

$query_createTemporaryTable = "CREATE TEMPORARY TABLE `temp_artist` (temp_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
ArtistName VARCHAR(20), NAMEOfTheDVD VARCHAR(30))";

$result_createtemptable = mysqli_query($dbhandle, $query_createTemporaryTable);

$query_insertintotable = "INSERT INTO `temp_artist` (ArtistName, NAMEOfTheDVD)
VALUES ('R', 'SHAWooSHANK')";

$result_insertintotable = mysqli_query($dbhandle, $query_insertintotable) or die(mysqli_error($dbhandle));

$query_selecttemptable = "SELECT ArtistName, NAMEOfTheDVD FROM `temp_artist`";

$result_selecttemptable = mysqli_query($dbhandle, $query_selecttemptable) or die(mysqli_error());

while($row_selecttemptable = mysqli_fetch_array($result_selecttemptable)){
echo $row_selecttemptable['ArtistName'], ' - ',
$row_selecttemptable['NAMEOfTheDVD'], '<br />';
}

$delete_temptable = "DROP TABLE `temp_artist`";
$result_temptable = mysqli_query($dbhandle, $delete_temptable) or die(mysqli_error());
mysqli_close($dbhandle);
0