没有给我任何错误,我已经与服务器连接,但我仍然无法让它工作。
仍然无法添加消息,您是否看到任何错误?
function pridaj_tovar() {
if ($link = spoj_s_db()) {
$sql = "INSERT INTO `Auto-Moto`".
"(`Tovar`, `Kategoria`,`Mesto`, `Cena`, `ID`, `Popis`)".
"VALUES".
"('$_POST['nazov']', '$_POST['kategorie']', '$_POST['mesta']',' $_POST['cena']', NULL,'$_POST['popis']')";
$result = mysql_query($sql, $link);
if ($result) {
// unable to add
echo '<p>inserting was successful.</p>'. "'n";
} else {
// unable to add!
echo '<p class="chyba">Nastala chyba pri pridávaní tovaru.</p>' . "'n";
}
mysql_close($link);
} else {
// NEpodarilo sa spojiť s databázovým serverom!
echo '<p class="chyba">NEpodarilo sa spojiť s databázovým serverom!</p>';
}
}
您应该如何处理带有空格,破折号(等)的字段和表名:
$sql = "INSERT INTO `Auto-Moto`".
"(`Tovar`, `Kategoria`,`Mesto`, `Cena`, `ID`, `Popis`)".
"VALUES".
"('Something', 'Something1', 'word', '50', NULL, 'anotherword')";
$sql = "INSERT INTO `Auto-Moto`".
"(`Tovar`, `Kategoria`,`Mesto`, `Cena`, `ID`, `Popis`)".
"VALUES". "
('{$_POST['nazov']}', '{$_POST['kategorie']}', '{$_POST['mesta']}','{$_POST['cena']}',
NULL,'{$_POST['popis']}')";
你的查询方式有几个问题。
首先,您的表名是非标准的(Auto-Moto),因此您可能需要在它周围添加引号。其次,在适当的位置添加一些空间总是一个好的做法,以便您可以更改:
"VALUES"
," VALUES "
但是您需要提供您收到的错误和您的表结构。
您的Query中缺少了很多空格:
复制:
$sql = "INSERT INTO Auto-Moto ".
"(Tovar, Kategoria, Mesto, Cena, ID, Popis) ".
"VALUES ".
"('Something', 'Something1', 'word', '50', NULL, 'anotherword')";
如果您想看到错误消息,请更改这一行:
$result = mysql_query($sql, $link);
:
$result = mysql_query($sql, $link) or die ("Error in query: $query. " . mysql_error());
但是您应该真正学习使用mysqli_*
扩展,因为mysql_*
扩展(例如您正在使用的)将在PHP 5.5中贬值。所以把它改成:
$result = mysqli_query($sql, $link) or die ("Error in query: $query. " . mysqli_error());
并确保更改您代码中可能存在的任何其他mysqli_*
扩展,例如在您正在调用的spoj_s_db()
函数中作为DB连接的$link
。
此外,您的$sql
有一些格式化错误。试试这个:
$sql = "INSERT INTO Auto-Moto"
. " (Tovar, Kategoria, Mesto, Cena, ID, Popis)"
. " VALUES"
. " ('Something', 'Something1', 'word', '50', NULL, 'anotherword')"
;
注意查询中. "
串联字符串周围的空格。在原始查询中,格式中根本没有空格。