我无法从php插入mysql

时间:2015-06-10 16:27:01

标签: php mysql

该问题的解决方案类型定义字符串中的元素数与绑定变量数不匹配     

session_start();


$regValue1 = $_GET['un'];

$regValue2 = $_GET['pass'];

$regValue3 = $_GET['fn'] ;

$regValue4 = $_GET['ln'];

$regValue5 = $_GET['age'] ;

$regValue6 = $_GET['sex'];

$regValue7 = $_GET['em'] ;

echo "hello: ".$regValue3.".";


$servername = "localhost";
username = "root";
$password = "b4sonic";
$dbname = "blog";



$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$stmt = $conn->prepare("INSERT INTO register(un,pass,fn,ln,age,sex,email)           VALUES (?,?,?,?,?,?,?)");
bind_param("sss",$regValue1,
$regValue2,$regValue3,$regValue4,$regValue5,$regValue6,$regValue7);

$stmt->execute();


echo "New records created successfully";

$stmt->close();
$conn->close();
?>

我在php中有这个代码,我正在尝试向mysql插入数据但是我遇到了这个问题类型定义字符串中的元素数量与绑定变量的数量不匹配

2 个答案:

答案 0 :(得分:2)

语句中的类型字符串中没有足够的类型说明符。

bind_param("sss",$regValue1,$regValue2,$regValue3,$regValue4,$regValue5,$regValue6,$regValue7);

表示您输入的类型为“sss”,它只对应于您指定的7个变量中的3个。您需要为其余部分添加类型。

来自documentation

  

VAR1

     

变量的数量和字符串类型的长度必须与语句中的参数匹配。

答案 1 :(得分:0)

您使用的命令是使用PDO连接到SQL数据库而您使用的是mysqli。我给出了一个使用下面的mysqli的例子。另一种选择是将连接更改为PDO类型而不是mysqli。

<?php
session_start();


$regValue1 = $_GET['un'];

$regValue2 = $_GET['pass'];

$regValue3 = $_GET['fn'] ;

$regValue4 = $_GET['ln'];

$regValue5 = $_GET['age'] ;

$regValue6 = $_GET['sex'];

$regValue7 = $_GET['em'] ;

echo "hello: ".$regValue3.".";


$servername = "localhost";
$username = "root";
$password = "b4sonic";
$dbname = "blog";



$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO register(un,pass,fn,ln,age,sex,email)".
        "VALUES (`$regValue1`,`$regValue2`,`$regValue3`,`$regValue4`,`$regValue5`,`$regValue6`,`$regValue7`)";
$conn->query($sql);

echo $conn->affected_rows. " new records created successfully";

$conn->close();
?>