Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正在尝试将数据插入mysql数据库_Php_Mysql - Fatal编程技术网

Php 正在尝试将数据插入mysql数据库

Php 正在尝试将数据插入mysql数据库,php,mysql,Php,Mysql,它正在连接到数据库,但未插入值 请帮助我将表单值插入表中 ` if(设置($\u POST[“提交”])){ $dbconnect=newmysqli('localhost','root','tas'); 如果($dbconnect){ echo“连接到数据库”; } 否则{ echo“未连接”; } $fname=$_POST[“fname”]; $lname=$_POST[“lname”]; $cert=$_POST[“证书”]; $sex=$_POST[“sex”]; $mobile=$_

它正在连接到数据库,但未插入值 请帮助我将表单值插入表中 `
if(设置($\u POST[“提交”])){
$dbconnect=newmysqli('localhost','root','tas');
如果($dbconnect){
echo“连接到数据库”;
}
否则{
echo“未连接”;
}
$fname=$_POST[“fname”];
$lname=$_POST[“lname”];
$cert=$_POST[“证书”];
$sex=$_POST[“sex”];
$mobile=$_POST[“mobile”];
$email=$_POST[“email”];
$institution=$_POST[“institution”];
$session=$_POST[“session”];
$media=$_POST[“media”];
$insert=“插入已注册(firstmame、lastname、certificatename、性别、手机、电子邮件、机构、会话、媒体)
价值($fname、$lname、$cert、$sex、$mobile、$email、$institution、$session、$media)”;
如果(!$insert){
回显“
错误id未插入”; } 否则{ 回声“
成功”; } }

?>`

您从未执行过
mysqli\u查询()
。请执行查询并提供更多详细信息。

您的代码正在为变量分配字符串值

$query = "whatever";
这并不是在数据库中插入任何内容,因为您的代码从未将该字符串作为SQL(发送到数据库)执行

要在数据库上执行该操作,需要使用
mysqli\u
函数,例如
mysqli\u query()


请考虑使用<强>准备好的语句<强> > <强>占位符< /强>

在SQL文本中包含潜在的不安全值会导致SQL注入漏洞

注意:SQL文本中的字符文本需要用单引号括起来

e、 g.
值('abc','def')
不是
值(abc,def)


跟进

下面是一个使用带绑定占位符的准备语句运行INSERT的示例

$sql = "INSERT INTO registered
( firstmame
, lastname
, certificatename
, sex
, mobile
, email
, institution
, session
, media
) VALUES 
( ? , ? , ? , ? , ? , ? , ? , ? , ?)";

if ($stmt = mysqli_prepare($dbconnect, $sql)) {
    mysqli_stmt_bind_param($stmt, 'sssssssss'
        , $fname
        , $lname
        , $cert
        , $sex
        , $mobile
        , $email
        , $institution
        , $session
        , $media 
        );
    mysqli_stmt_execute($stmt);
    echo "affected rows = " . mysqli_stmt_affected_rows($stmt);
    mysqli_stmt_close($stmt);
} else {
   echo "error in prepare " . mysqli_error($dbconnect);
}

参考资料:

您能否发布您收到的确切错误消息?您从未执行过该查询。我敢打赌它是values@JakeBallOP正在使用MySQLi:
$dbconnect=newmysqli('localhost','root','tas')粗鲁。我认为您尝试插入的大多数值都是字符串,因此需要引用。此外,我建议您查找准备好的语句/参数化查询,以确保查询的安全性,而不是将变量直接插入查询中。此外,您不运行insert。虽然这是问题的一部分,但他们还需要在查询中引用所有字符串值。对于下一票-这怎么不能回答OPs问题?OP想知道为什么它没有插入,这就是为什么。第四个可能与您在一起@Dagonpls我如何执行查询我是一个新手在这里阅读,回顾示例。如果你去寻找,所有的信息都在那里。不要偷懒@EsemeUkeme@EsemeUkeme:我在回答中添加了一个后续内容,以提供一个使用带绑定占位符的准备语句执行简单插入的示例。这将替换代码中的行
$insert=“insert…”
(可能我拼错了什么,或者漏掉了一个分号,但这应该能让您了解它的大致情况。有关mysqli接口函数的更多信息,请参阅PHP文档。(请仔细注意函数接受的参数以及函数返回的内容。)
$sql = "INSERT INTO registered
( firstmame
, lastname
, certificatename
, sex
, mobile
, email
, institution
, session
, media
) VALUES 
( ? , ? , ? , ? , ? , ? , ? , ? , ?)";

if ($stmt = mysqli_prepare($dbconnect, $sql)) {
    mysqli_stmt_bind_param($stmt, 'sssssssss'
        , $fname
        , $lname
        , $cert
        , $sex
        , $mobile
        , $email
        , $institution
        , $session
        , $media 
        );
    mysqli_stmt_execute($stmt);
    echo "affected rows = " . mysqli_stmt_affected_rows($stmt);
    mysqli_stmt_close($stmt);
} else {
   echo "error in prepare " . mysqli_error($dbconnect);
}