我一直在看这段代码一段时间,我看不出问题出在哪里。我一直在阅读整个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来帮助自己,但这对我帮助不大。
答案 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
作为其值。