gpt4 book ai didi

php - MySQL INSERT 查询无输出

转载 作者:行者123 更新时间:2023-11-30 22:22:46 24 4
gpt4 key购买 nike

数据库架构:

CREATE TABLE `db1`.`info`
(
`Name` NOT NULL,
`PhoneNumber` INT(15) NOT NULL,
`Location` NOT NULL,
`Var1` LONGTEXT NOT NULL,
`Var2` LONGTEXT NOT NULL
) ENGINE = InnoDB;

连接.php:
$con = new mysqli("localhost","root","","db1") or die ("Conn Error");

索引.php:
<?php
include_once("connection.php");
$name="New Person";
$phone="0121234567";
$loc="New York";
$var1="A";
$var2="B";

$insert="INSERT INTO info (Name, PhoneNumber, Location, Var1, Var2) VALUES ('$name','$phone','$loc','$var1','$var2')";

$result1 = $con->query($insert);
?>

我刚刚开始学习 php,当我尝试这样做时(在创建连接之后),我没有得到任何输出。 -EDIT- 通过输出我的意思是它没有被添加到数据库中。

于是我环顾四周,发现
if(!$result1){ //error-checking
var_dump($result1);

并在 ?> 之前添加它,我得到的输出是 bool(false)。这是为什么?
而且,我如何正确地将值插入到我的表中?

提前致谢。

最佳答案

查看您的架构,我推测问题是您正在尝试将字符串值( '$phone' )插入到 中。 INT 柱子。将其作为 插入INT 您在不带引号的情况下指定它( '$name', $phone, '$loc'... )

这是我喜欢使用 prepared statements 的(许多)原​​因之一。对于这种事情:自动为您处理引用和类型匹配。

使用 mysqli 执行插入准备好的语句,您将使用以下代码:

$insert = "INSERT INTO info
(Name, PhoneNumber, Location, Var1, Var2)
VALUES
(?, ?, ?, ?, ?)";
$stmt = $con->prepare($insert);
$stmt->bind_param('sisss', $name, $phone, $loc, $var1, $var2);
if ($stmt->execute())
{
echo "Yay!";
}
else
{
echo "Error: {$stmt->errno}: {$stmt->error}";
}
bind_param 的第一个参数按顺序指定以下参数的类型: 's' = 字符串, 'i' =整数。执行查询时,这些变量的当前值将按相同顺序插入占位符 ( '?') 的位置。

关于php - MySQL INSERT 查询无输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36226860/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com