Salve!
Sto cominciando ad usare l'oggetto MYSQLI, questa è la pagina di riferimento:
http://php.net/manual/en/mysqli.multi-query.php
Il mio codice è identico a quello proposto dal manuale ufficiale, quindi c'è poco da sbagliare.
Il database esiste poichè l'ho creato in precedenza ma è sempre vuoto nonostante il lancio dello script:
Ho fatto il debug ed ho scoperto che l'istruzione
mi da FALSE ergo la query non viene eseguita.
Sto cominciando a considerare l'idea che php non mi faccia fare determinate query del tipo CREATE TABLE o cose affini.
Forse per questo genere di funzioni ci vuole altro?
grazie
Sto cominciando ad usare l'oggetto MYSQLI, questa è la pagina di riferimento:
http://php.net/manual/en/mysqli.multi-query.php
Il mio codice è identico a quello proposto dal manuale ufficiale, quindi c'è poco da sbagliare.
Il database esiste poichè l'ho creato in precedenza ma è sempre vuoto nonostante il lancio dello script:
PHP:
<?php
$database = "prova";
$user = "admin";
$pass = "admin";
$link = mysqli_connect("localhost", "root", "CICCIO", "prova");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = "USE '$database';";
$query .= "CREATE TABLE IF NOT EXISTS commenti(
idcommento INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
id INT NOT NULL,
user VARCHAR(55) NOT NULL,
email VARCHAR(55) NOT NULL,
data DATE NOT NULL,
commento TEXT NOT NULL,
approvato TINYINT(1) NOT NULL
);";
$query .= "CREATE TABLE IF NOT EXISTS News (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
testonews TEXT NOT NULL,
titolonews TINYTEXT NOT NULL,
datanews DATE NOT NULL,
autorenews VARCHAR(50) NOT NULL
);";
$query .= "ALTER TABLE commenti
ADD FOREIGN KEY (id) REFERENCES News(id);";
$query .= "CREATE TABLE IF NOT EXISTS login(
user VARCHAR(50) NOT NULL,
pass VARCHAR(100) NOT NULL
);";
$query .= "INSERT INTO login (user,pass) VALUES ('$user', '$pass')";
/* execute multi query */
[B]if (mysqli_multi_query($link, $query))[/B] {
do {
/* store first result set */
if ($result = mysqli_store_result($link)) {
while ($row = mysqli_fetch_row($result)) {
printf("%s\n", $row[0]);
}
mysqli_free_result($result);
}
/* print divider */
if (mysqli_more_results($link)) {
printf("-----------------\n");
}
} while (mysqli_next_result($link));
} {
echo "fail";
}
/* close connection */
mysqli_close($link);
?>
Ho fatto il debug ed ho scoperto che l'istruzione
PHP:
if (mysqli_multi_query($link, $query))
Sto cominciando a considerare l'idea che php non mi faccia fare determinate query del tipo CREATE TABLE o cose affini.
Forse per questo genere di funzioni ci vuole altro?
grazie