Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.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,我正在做一个简单的学校作业报名表。 由于某些原因,我无法在当前表中创建新列。 有关$\u Get的所有信息都将正确显示。我想这是一个语法错误,我没有看到。任何帮助都会很好。多谢各位 if ( $_GET['action'] == "create" ) { print('test'); // ----------------------- // PERFORM DATABASE UPDATE $fn = $_GET['f

我正在做一个简单的学校作业报名表。 由于某些原因,我无法在当前表中创建新列。 有关$\u Get的所有信息都将正确显示。我想这是一个语法错误,我没有看到。任何帮助都会很好。多谢各位

 if ( $_GET['action'] == "create" )

    {

        print('test');
        // -----------------------
        // PERFORM DATABASE UPDATE
        $fn = $_GET['fn'];
        $ln = $_GET['ln'];
        $id = $_GET['id'];
        $user = $_GET['user'];
        $tel = $_GET['tel_num'];
        $email = $_GET['email'];
        $bday = $_GET['birthday'];
        $password = $_GET['password'];
        $address = $_GET['address'];

        print('test1');

        mysql_select_db("advweb2");


        $sql="INSERT INTO `account` (`user`, `password` , `email` , `first_name` , `last_name` , `address` , `tel_num` , `birthday`)
        VALUES ('$user', '$password', '$email', '$fn', '$ln', '$address', '$tel', '$bday')"; 
        print_r($sql);



        print("<div style='color:green'>update successful</div>");

        // -----------------------

        $action = "signin";
    }
if($\u GET['action']=“create”)
{
打印(“测试”);
// -----------------------
//执行数据库更新
$fn=$_GET['fn'];
$ln=$_GET['ln'];
$id=$_GET['id'];
$user=$_GET['user'];
$tel=$\u GET['tel\u num'];
$email=$_获取['email'];
$bday=$_获得['生日];
$password=$_GET['password'];
$address=$_GET['address'];
打印(“test1”);
mysql_select_db(“advweb2”);
$sql=“插入帐户”(`user`、`password`、`email`、`first\u name`、`last\u name`、`address`、`tel\u num`、`birth`)
值(“$user”、“$password”、“$email”、“$fn”、“$ln”、“$address”、“$tel”、“$bday”);
打印(sql);
打印(“更新成功”);
// -----------------------
$action=“sign”;
}

请不要使用mysql\u查询,而是切换到mysqli或


您需要执行查询

您应该使用MySQLi或PDO,因为mysql\u查询已被弃用

mysqli示例:

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$stmt = $mysqli->prepare(
  "INSERT INTO `account` (`user`, `password` , `email` , `first_name` , `last_name` , `address` , `tel_num` , `birthday`)
    VALUES (?, ?, ?, ?, ?, ?, ?, ?)"
);
$stmt->bind_param('ssssssss', $user, $password, $email, $fn, $ln, $address, $tel, $bday);
$stmt->execute();

/* ... */

$stmt->close()
?>


在插入数据库之前,需要确保清除
$\u GET
变量,以防止SQL注入。一本好书:。

使用其他人解释过的Mysqli或PDO,但如果您坚持这样执行查询:

$sql=mysql_query("INSERT INTO `account` (`user`, `password` , `email` , `first_name` , `last_name` , `address` , `tel_num` , `birthday`)
        VALUES ('$user', '$password', '$email', '$fn', '$ln', '$address', '$tel', '$bday')"); 

因为您准备了查询并将其分配给了变量,但没有执行它。

您需要将$sql变量包装在mysql\u query()函数中,以便它实际运行查询,此时您只需打印出来,而不实际处理它。如果您已设置正确的值以连接到数据库,则会出现这种情况,因为您的代码中没有这方面的证据。当我希望运行查询时,我通常会发现实际运行查询很有用:我+1表示@Sammitch,哈哈。基本上,您需要执行查询。@Karl虽然我完全同意您的意见,但您不应该建议使用
mysql\u query
,即使他自己使用它。
mysql
扩展已被弃用,不应再使用。相反,建议使用或更好。@Tularis确实如此,但就他的“学校作业”而言,我认为不值得指出。这非常有效。是的,我忘了运行查询。哎呀。这就是学校的目的。当使用
mysqli
时,应该使用参数化查询,并将用户数据添加到查询中。
$sql=mysql_query("INSERT INTO `account` (`user`, `password` , `email` , `first_name` , `last_name` , `address` , `tel_num` , `birthday`)
        VALUES ('$user', '$password', '$email', '$fn', '$ln', '$address', '$tel', '$bday')");