我是PHP和MySQL的新手,如何创建一个电话号码为数据库名称的数据库?电话号码的格式为+256720742675。我已经尝试了下面的代码,但继续犯错误。
<?php
$database= $_POST[PhoneNumberTextBox];
//check for MySQL server connection
$connection = mysql_connect("localhost","root","");
if (!$connection)
{
die('Could not connect to database: ' . mysql_error());
}
//Create database
$sql= "CREATE DATABASE $database";
if(!mysql_query($sql,$connection))
{
die('Could not create database'.mysql_error());
}
else
echo"Database Created<br\>";
//Close connection
mysql_close($connection);
?>
答案 0 :(得分:4)
不知道从哪里开始...来自:
root
数据库用户,或我可以看到发生了很多不好的事情......
答案 1 :(得分:3)
首先,为每个数字创建一个表是不对的。
不允许使用数字启动数据库名称。如果您坚持,请尝试在其前面添加一封信。
例如:N256720742675
答案 2 :(得分:3)
答案是将电话号码存储在一个字段中。不是每个电话号码创建一个新数据库:
创建一个这样的表:
create table phonenumbers (
phone varchar(20) not null primary key,
related_field1
......
related_field25
现在你可以使用这样的代码:
$conn = mysql_connect("localhost","named_user","long_password_with_entropy");
$phone = mysql_real_escape_string($_POST['PhoneNumberTextBox']);
$sql = "INSERT INTO phonenumbers (phone, field1, field2, field3)
VALUES ('$phone','1','2','3') ";
//The quotes ^ ^ are essential !
现在,您正在以可以检索它们的方式将数据存储在数据库中。
您可以按照这样的语音选择所有数据:
SELECT p.*, c.*
FROM phonenumbers p
LEFT JOIN calls c ON (c.phonenumber = p.phone)
WHERE p.phone = '$phone';
硬规则
root
登录。 $_*
转义所有mysql_real_escape_string
超级全局变量。 (甚至更好:使用PDO)。请参阅:How does the SQL injection from the "Bobby Tables" XKCD comic work?
请参阅本教程关于mysql和php:http://www.tizag.com/mysqlTutorial/
这是少数能够正确理解这一话题的人之一。