在将数据插入数据库时​​,MySQL会影响行-1

时间:2018-06-10 19:15:06

标签: php mysql sql database insert

我想创建一个简单的代码片段,将数据放入数据库形成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;

?>

4 个答案:

答案 0 :(得分:3)

引用the documentation

  

-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')”