【发布时间】:2014-04-12 19:49:29
【问题描述】:
我正在使用数组将数据插入到名为 tPerson 的表中。如果脚本成功发挥作用,它将回显:
SQL: 插入 tPerson(Salutation、FirstName、LastName、CompanyID)值(Morris、Sparrow 先生,4 岁)(Mrs,Mary,Haslett,2 岁)(Gill,Hennesey 女士,1 岁)
成功了。
它的工作没有成功并回响:
SQL: 插入 tPerson(Salutation、FirstName、LastName、CompanyID)值(Morris、Sparrow 先生,4 岁)(Mrs,Mary,Haslett,2 岁)(Gill,Hennesey 女士,1 岁)
失败。
我的代码如下:
$hostname = "localhost";
$username = "root";
$password = "";
$databaseName = "alphacrm";
$dbConnected = @mysql_connect($hostname, $username, $password);
$dbSelected = @mysql_select_db($databaseName, $dbConnected);
$dbSuccess = true;
if ($dbConnected) {
if (!$dbSelected) {
echo "DB connection FAILED<br><br>";
$dbSuccess = false;
} else {
echo "DB connection SUCCESSFUL<br><br>";
}
} else {
echo "MySql connection FAILED<br><br>";
}
}
// Execute code ONLY if connections were successful
if ($dbSuccess) {
{ // setup ARRAY of field names
$personField = array(
"Salutation" => "Salutation",
"FirstName" => "FirstName",
"LastName" => "LastName",
"CompanyID" => "CompanyID"
);
}
{ // setup ARRAY of data ROWS
$personData[0] = array("Mr","Morris","Sparrow","4");
$personData[1] = array("Mrs","Mary","Haslett","2");
$personData[2] = array("Ms","Gill","Hennesey","1");
$numRows = sizeof($personData);
}
{ // SQL statement with ARRAYS
//Fieldnames part of INSERT statement
$person_SQLinsert = "INSERT INTO tPerson (
".$personField["Salutation"].",
".$personField["FirstName"].",
".$personField["LastName"].",
".$personField["CompanyID"]."
)";
// VALUES part of INSERT statement
$person_SQLinsert .= "VALUES ";
$indx = 0;
$person_SQLinsert .= "(
".$personData[$indx][0].",
".$personData[$indx][1].",
".$personData[$indx][2].",
".$personData[$indx][3]."
)";
$indx++;
$person_SQLinsert .= "(
".$personData[$indx][0].",
".$personData[$indx][1].",
".$personData[$indx][2].",
".$personData[$indx][3]."
)";
$indx++;
$person_SQLinsert .= "(
".$personData[$indx][0].",
".$personData[$indx][1].",
".$personData[$indx][2].",
".$personData[$indx][3]."
)";
}
{ // Echo and execute the SQL and test for success
echo "<strong><u>SQL:<br></u></strong>";
echo $person_SQLinsert."<br><br>";
if (mysql_query($person_SQLinsert)) {
echo "was SUCCESSFUL.<br<br>";
} else {
echo "FAILED.<br><br>";
}
}
} // END ($dbSuccess)
?>
所有帮助都将不胜感激,因为我对我的脚本为什么不工作感到很困惑。
【问题讨论】:
-
你需要在单引号内设置值,它会解决问题。
-
您还需要在
VALUES集合之间添加一个逗号(即(...), (...), (...))。 -
请不要使用mysql_,改用mysqli_(改进)。
-
使用mysqli有什么好处?
-
什么是 sql 错误?尝试us1.php.net/manual/en/function.mysql-error.php 并准备发布您的表结构,如 SHOW CREATE TABLE tPerson 所示