我想创建一个简单的代码片段,将数据放入数据库形成PHP脚本,除了将数据放入数据库之外,一切正常! (我正在使用PHP7运行服务器)
受影响的行的输出显示-1(奇怪),我仔细检查了我的代码,将其与其他人进行了比较,尝试在互联网上搜索常见问题,甚至尝试在本地服务器上无效。
你可以在这里看到:
https://leer.bosvision.nl/register.php
我的代码:
<?php
$conn = mysqli_connect("localhost", "-user-", "-pass-", "-db-");
if(!$conn) {
$msg = die('connection error');
} else {
$msg = 'Connection success.';
}
echo $msg;
?>
<?php
$query = 'INSERT INTO users_two (ID, username, password) VALUES (1, gfd, gfd)';
if(mysqli_query($conn, $query)) {
$result = 'Data saved';
} else {
$result = 'No data saved';
}
$affected = mysqli_affected_rows($conn);
echo $result . '.' . ' Affected rows: ' . $affected;
?>
答案 0 :(得分:3)
-1表示查询返回了错误。
您的insert
语句确实错误,因为您没有gfd
列。如果您打算将其用作值,则应使用单引号括起来:
$query = "INSERT INTO users_two (ID, username, password) VALUES (1, 'gfd', 'gfd')";
# Here -------------------------------------------------------------^---^--^---^
答案 1 :(得分:0)
<?php
$conn = mysqli_connect("localhost", "-user-", "-pass-", "-db-");
if(!$conn) {
$msg = die('connection error');
} else {
$msg = 'Connection success.';
}
echo $msg;
?>
<?php
$query = "INSERT INTO users_two (username, password) VALUES ('gfd', 'gfd')";
if($result= mysqli_query($conn, $query)) {
$result = 'Data saved';
} else {
$result = 'No data saved';
}
$affected = mysqli_affected_rows($conn);
echo $result . '.' . ' Affected rows: ' . $affected;
?>
假设ID是自动递增,因此不需要在那里,或者不是,并且您遇到的问题是它是密钥的重复条目。您还需要将变量数据包装在''
中我猜这是一个SQL问题。您可以直接在数据库上运行查询吗?这会给你错误。
答案 2 :(得分:0)
阅读此页面以获取更多信息:PHP insert statement
$sql = "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('John', 'Doe', 'john@example.com')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
通常情况下,您不应该自己插入ID,因为它应该是自动增量。
答案 3 :(得分:-2)
尝试在字符串值中添加引号,如:
“INSERT INTO users_two(ID,username,password)VALUES(1,'gfd','gfd')”