mysql在将数据插入数据库时影响行-1

jgzswidk  于 2021-06-21  发布在  Mysql
关注(0)|答案(4)|浏览(915)

我想创建一个简单的代码,将把数据到数据库中形成一个php脚本,一切工作正常,除了把数据到数据库中(我正在使用php7运行服务器)
受影响行的输出显示-1(奇怪),我仔细检查了我的代码,将其与其他代码进行了比较,尝试在internet上搜索常见问题,甚至在本地服务器上尝试都没有结果。
你可以在这里看到:
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;

?>
vnjpjtjt

vnjpjtjt1#

阅读本页了解更多信息:php insert语句

$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,因为它应该是自动递增的。

lztngnrs

lztngnrs2#

尝试在字符串值中添加引号,如下所示:
“在用户中插入两个(id、用户名、密码)值(1,'gfd','gfd')”

prdp8dxp

prdp8dxp3#

<?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是自动递增的,所以它不需要在那里,或者它不是,您遇到的问题是它是key的一个重复条目。您还需要将var数据 Package 到“”
我猜这是一个sql问题。你能直接在你的数据库上运行你的查询吗?那会给你一个错误。

guykilcj

guykilcj4#

引用文档:
-1表示查询返回错误。
还有你的 insert 声明确实出错了,因为您没有 gfd 列。如果要将其用作值,则应使用单引号括起来:

$query = "INSERT INTO users_two (ID, username, password) VALUES (1, 'gfd', 'gfd')";

# Here -------------------------------------------------------------^---^--^---^

相关问题