Я пытаюсь создать временную таблицу в моей локальной базе данных с помощью 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();
?>
Здесь есть несколько ошибок
Сначала у вас есть точка, а не запятая в качестве разделителя после temp_id, который не будет компилироваться. Также у вас есть 3 столбца в списке столбцов и только 2 в списке данных. Вам на самом деле не нужно передавать temp_id
так как это столбец автоинкремента. Так что измените эту строку на
$query_insertintotable = "INSERT INTO temp (ArtistName, NAMEOfTheDVD)
VALUES ('R', 'SHAWooSHANK')";
Вот ваш код с исправленными ошибками и переименованной во временную таблицу temp_artist
,
Это все мелкие ошибки. Позвольте мне предложить вам самый высокий уровень проверки ошибок, установленный в вашей среде разработки PHP.
Я также проверяю, что весь код SQL работает из IDE, прежде чем использовать его в PHP.
Ошибки:
create table statement
mysqli_query
заявление.drop
Заявление должно иметь кавычки, а не кавычки.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);