[英]Inserting data into mysql from array in php
我有一个数据库test
,表名称为table
,表的名称为user
& email
两列。 我的以下代码有什么问题? 无法将数组$u
添加到我的数据库中
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("test", $con);
$user = "safwan";
$email = "esafw@jdjd.com";
$u = array ( user => $user,
email => $email
);
$q = "INSERT INTO table VALUES ($u)";
mysql_query($q) OR die(mysql_error());
mysql_close($con);
?>
您有几个问题:
table是一个MySQL关键字,如果实际上是表名,则需要反引号
mysql_select_db("test", $con); $user = "safwan"; $email = "esafw@jdjd.com"; $u = array ( 'user' => $user, 'email' => $email ); $q = "INSERT INTO table (user, email) VALUES ('".mysql_real_escape_string($u['user'])."', '".mysql_real_escape_string($u['email'])."')"; mysql_query($q) OR die(mysql_error()); mysql_close($con); ?>
要么:
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("test", $con);
$user = "safwan";
$email = "esafw@jdjd.com";
$q = "INSERT INTO table (user, email) VALUES ('".mysql_real_escape_string($user)."', '".mysql_real_escape_string($email)."')";
mysql_query($q) OR die(mysql_error());
mysql_close($con);
?>
请查看MySQL数据类型。 http://dev.mysql.com/doc/refman/5.5/en/data-types.html
您必须遍历数组并分别添加元素。 我还建议使用其他东西(例如MySQLi或PDO)来提高安全性http://php.net/manual/zh/book.pdo.php
实际上,使用PDO,您可以“添加阵列”(由于其设计方式)。
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name=? AND password=?);
$stmt->execute(array($_GET['username'], $_GET['password']));
我不会讲太多,因为您应该真正学习一种较新的技术。 准备好的语句,SQL注入和其他东西使安全性大大提高。
尝试回显您的查询。 它看起来像:
"INSERT INTO table VALUES (array)".
当然,您不需要什么。
您可以通过遍历数组或直接使用来构造插入查询:
INSERT INTO table VALUES ($user, $email)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.