将数据插入表(mysqli insert)

时间:2013-05-30 12:10:00

标签: php database mysqli sql-insert

我一直在看这段代码一段时间,我看不出问题出在哪里。我一直在阅读整个StackOverflow,但仍无法看到我的错误。

<?php

mysqli_connect("localhost","root","","web_table");
mysql_select_db("web_table") or die(mysql_error());

if (mysqli_connect_errno()) {

  echo "Failed to connect to MySQL: " . mysqli_connect_error();

}
echo "<p> Connection Successful!"

mysqli_query('INSERT INTO web_formitem (ID, formID, caption, key, sortorder, type, enabled, mandatory, data) VALUES (105, 7, Tip izdelka (6), producttype_6, 42, 5, 1, 0, 0)');


echo "<p>Insert successfull";

?>

错误位于第13行,即mysqli_query('insert...。我试图用http://www.w3schools.com/php/php_mysql_insert.asp来帮助自己,但这对我帮助不大。

7 个答案:

答案 0 :(得分:25)

警告:从未参考 w3schools 进行学习。他们的教程中有很多错误。

根据mysqli_query文档,第一个参数必须是连接字符串:

$link = mysqli_connect("localhost","root","","web_table");

mysqli_query($link,"INSERT INTO web_formitem (`ID`, `formID`, `caption`, `key`, `sortorder`, `type`, `enabled`, `mandatory`, `data`)
VALUES (105, 7, 'Tip izdelka (6)', 'producttype_6', 42, 5, 1, 0, 0)") 
or die(mysqli_error($link));

注意:为插入查询中的列名添加反引号`,因为您的某些列名是保留字。

答案 1 :(得分:3)

在mysqli_query中(第一个参数应该是连接,你的sql语句) 所以

$connetion_name=mysqli_connect("localhost","root","","web_table") or die(mysqli_error());
mysqli_query($connection_name,'INSERT INTO web_formitem (ID, formID, caption, key, sortorder, type, enabled, mandatory, data) VALUES (105, 7, Tip izdelka (6), producttype_6, 42, 5, 1, 0, 0)');

但最佳做法是

$connetion_name=mysqli_connect("localhost","root","","web_table") or die(mysqli_error());
$sql_statement="INSERT INTO web_formitem (ID, formID, caption, key, sortorder, type, enabled, mandatory, data) VALUES (105, 7, Tip izdelka (6), producttype_6, 42, 5, 1, 0, 0)";
mysqli_query($connection_name,$sql_statement);

答案 2 :(得分:0)

在使用php mysqli函数时,请记住首先提到连接细节,然后在函数中传递查询

$cid=mysqli_connect("server", "username", "password", "database_name") or die (mysql_error());
mysqli_query($cid, $query) or die (mysqli_error($cid));
$result=mysqli_affected_rows($cid);
if($result===TRUE)
  echo"The query ran successfully";
else
  echo"The query did not run";
mysqli_close($cid);

请记住,$ cid是保存上述代码中连接数据的变量。

答案 3 :(得分:0)

好的,当然问题已经得到解答,但似乎没有人注意到代码的第三行。它一直在骚扰我。

    <?php
    mysqli_connect("localhost","root","","web_table");
    mysql_select_db("web_table") or die(mysql_error());

由于某种原因,你做了一个mysqli连接到服务器,但你正在尝试建立一个mysql连接到数据库。要开始,而不是使用

       $link = mysqli_connect("localhost","root","","web_table");
       mysqli_select_db ($link , "web_table" ) or die.....

或者我开始的地方

     <?php $connection = mysqli_connect("localhost","root","","web_table");       
      global $connection; // global connection to databases - kill it once you're done

或者仅使用$ connection参数进行查询,如上面的其他参数。摆脱第三条线。

答案 4 :(得分:-1)

这个怎么样?

mysqli_query("INSERT INTO `web_formitem` (`ID`, `formID`, `caption`, `key`, `sortorder`, `type`, `enabled`, `mandatory`, `data`) VALUES ('105', '7', 'Tip izdelka (6)', 'producttype_6', '42', '5', '1', '0', '0')");

答案 5 :(得分:-2)

mysqli_query('INSERT INTO web_formitem (ID, formID, caption, key, sortorder, type, enabled, mandatory, data) VALUES ('105', '7', 'Tip izdelka (6)', 'producttype_6', '42', '5', '1', '0', '0')');

答案 6 :(得分:-2)

如果您的某个列(例如ID)是自动增量,则不应为其指定值。只需将NULL作为其值。